Получение ошибки при установке драгоценного камня bootstrap-sass в моем приложении ruby ​​on rails

Последние несколько дней я изучаю Ruby on Rails и следую руководствам из книги. Я работаю над приложением, которое требует импорта бутстрапа, однако у меня возникают проблемы с его установкой в ​​мой проект.

Я использую Ruby версии 2.3.1 и Rails версии 5.1.1, а также среду кодирования cloud9.

Я создаю новое приложение с помощью следующей команды:

rails new bootstrap_app

Следующая инструкция — «добавить загрузочный гем в gemfile» с помощью следующей команды:

gem 'bootstrap‐sass' , '~> 3.3.6'

Я делаю это, и я получаю следующую ошибку:

ERROR:  While executing gem ... (Gem::CommandLineError)
    Unknown command bootstrap-sass,

Я просмотрел эту ошибку и нашел ее в stackoverflow здесь однако «перезапуск сервера» в моем случае не сработал.

Следующая инструкция в учебнике — это команда

bundle install

Я делаю это, и он сообщает мне список установленных зависимостей (бутстрап не указан)

Я попробовал команду gem install bootstrap-sass, и она сказала, что установила драгоценный камень успешно, однако, когда я пытаюсь импортировать бутстрап в свой файл CSS следующим образом:

@import "bootstrap‐sprockets" ;
@import "bootstrap";

я получаю следующую ошибку:

ActionController::RoutingError (No route matches [GET] "/assets/bootstrap%E2%80%90sprockets"):

любые идеи о том, как я могу заставить это работать? Спасибо


person Sarah    schedule 06.06.2017    source источник
comment
Похоже, вы копируете/вставляете gem 'bootstrap‐sass' , '~> 3.3.6' в свою командную строку. Но нужно открыть файл Gemfile и добавить туда строчку.   -  person Wukerplank    schedule 06.06.2017
comment
@Wukerplank Это имеет больше смысла, спасибо. Теперь я вижу Gemfile в папке приложения. Поэтому я добавил строку gem 'bootstrap-sass', '~› 3.3.6' в Gemfile и запустил установку пакета, но получаю сообщение об ошибке: Не удалось найти gem 'bootstrap-sass (~› 3.3.6). 6)' в любом из источников гема, перечисленных в вашем Gemfile... но источник указан в верхней части Gemfile следующим образом: source 'rubygems.org»... есть идеи?   -  person Sarah    schedule 06.06.2017
comment
Поместите их оба в свой Gemfile: gem 'bootstrap-sass', '~> 3.3.6' gem 'sass-rails', '>= 3.2', затем запустите bundle install.   -  person okay56k    schedule 06.06.2017
comment
Спасибо @CD-RUM, но sass-rails уже был в моем Gemfile. gem 'sass-rails', '~› 5.0', после чего я запустил установку пакета. он успешно установил пакет, но я получаю сообщение об ошибке: файл для импорта не найден или нечитаем: bootstrap-sprockets.   -  person Sarah    schedule 06.06.2017


Ответы (1)


Как указано в CD-RUM, вам нужно будет добавить gem bootstrap-sass и gem sass-rails в свой Gemfile. Я бы также предложил добавить gem 'sprockets', '2.11.0', так как в более новой версии sprockets, которая поставляется с рельсами 5, были некоторые проблемы, хорошо работающие с Bootstrap. Затем запустите bundle install.

Вы также можете переименовать файл application.css в application.scss и добавить туда файлы импорта (@import "bootstrap-sprockets" и @import "bootstrap"). Теперь перезапустите ваш сервер.

Прочитайте инструкции по установке Ruby on Rails здесь: bootsrap-sass gem и, если вы все еще при возникновении проблем рассмотрите возможность изменения версии драгоценного камня bootstrap-sass на более раннюю версию (я использую gem 'bootstrap-sass', '~> 3.3.5.1'), поскольку у некоторых людей возникают конфликты версий.

person Belder    schedule 06.06.2017
comment
Спасибо @BrandonElder, но sass-rails уже был в моем Gemfile. gem 'sass-rails', '~› 5.0'. Я следовал всем рекомендациям, включая переименование файла application.css в application.scss, а также удаление *= require_self и *= require_tree в файле application.scss и использование импорта. Я также добавил //= требуемые звездочки начальной загрузки в application.js, но все равно не повезло. Проект работает, когда я вынимаю import bootstrap-sprockets; и просто используйте импортный бутстрап; но его не совсем идеально, чтобы оставить его. Я ценю вашу помощь. - person Sarah; 06.06.2017
comment
Хм... У вас есть гем sprockets в вашем Gemfile? Я бы попробовал добавить gem 'sprockets', '2.11.0' - person Belder; 06.06.2017
comment
Спасибо. Хорошо, я только что добавил то, что вы сказали, в Gemfile и снова запустил установку пакета. а затем перезапустил мой сервер, но я все равно получаю сообщение об ошибке: файл для импорта не найден или нечитаем: bootstrap-sprockets. хм - person Sarah; 06.06.2017
comment
Также может помочь не указывать версию gem 'sass-rails'. Rails найдет новейшую версию гема sass-rails, которая работает. - person Belder; 06.06.2017
comment
Хм... да, это странно. Я не могу думать ни о чем другом, что могло бы помочь в данный момент. Похоже, вы сделали все, что я обычно делаю при добавлении начальной загрузки в проект Rails. - person Belder; 06.06.2017
comment
Может быть какая-то проблема совместимости с версиями gem. Попробуйте изменить на gem 'bootstrap-sass', '~> 3.3.5.1'. Я почти уверен, что в последней версии есть некоторые ошибки, но я могу ошибаться. - person Belder; 06.06.2017
comment
Спасибо. Я только что попробовал это, но не повезло. Мне было интересно, какую версию рубина, а также рельсы вы используете? - person Sarah; 06.06.2017
comment
Черт... Я в тупике. Я использую Rails 5 и считаю, что Ruby 2.3.1 - person Belder; 06.06.2017
comment
Хорошо спасибо. На самом деле я только что попытался создать новый проект и снова выполнил шаги, чтобы добавить загрузчик, в том числе с использованием упомянутой вами версии: «bootstrap-sass», «~› 3.3.5.1», и до сих пор он отлично работает на сервере. Возможно, это не сработало в последнем проекте, потому что я пытался установить его в середине работы над проектом. Так что, скрестив пальцы, он продолжит успешно работать в этом проекте после того, как я включу некоторые стили начальной загрузки и т. Д. Я дам вам знать. Спасибо за помощь. - person Sarah; 06.06.2017
comment
О круто! Рад, что смог помочь Саре. Не забудьте принять мой ответ, если он был полезен :) Вчера вечером я добавил бутстрап в новый проект, и это процесс, который я использовал. Также в качестве примечания, чтобы ваши активы работали в продакшене, вам, возможно, придется изменить строку в /config/environments/production.rb с config.assets.compile = false на config.assets.compile = true. Стоит посмотреть хотя бы. - person Belder; 06.06.2017
comment
Давайте продолжим обсуждение в чате. - person Sarah; 06.06.2017