Зачем мне гем в хост-приложении

Я разрабатываю свой первый Rails Engine. Это макет панели администратора с активами и базовыми функциями.

Чего я действительно хочу, так это чтобы он был основан на Twitter Bootstrap + SASS.

Если у меня есть только эти строки в моем файле gemspec моего движка:

  gem.add_dependency "railties", "~> 3.2"
  gem.add_dependency "sass-rails"
  gem.add_dependency "bootstrap-sass"

Я получаю эту ошибку при попытке доступа к странице:

ActionView::Template::Error (couldn't find file 'bootstrap'
  (in /Users/swamiatma/Documents/Dropbox/coding/ruby/gems/tkh_admin_panel/app/assets/javascripts/admin.js:9)):

Однако, если я добавлю это в гемфайл хост-приложения:

gem 'bootstrap-sass'

Так что я получаю следующие строки:

group :assets do
  gem 'jquery-rails'
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'bootstrap-sass'
end

Теперь он работает нормально. Я думаю, что эта зависимость принадлежит строго гему движка Rails и должна быть там.

Что дает?


person allesklar    schedule 24.07.2012    source источник


Ответы (2)


Взгляните на движок rails-admin. Он использует 'bootstrap-sass' и требует его в engine.rb: https://github.com/sferik/rails_admin/blob/master/lib/rails_admin/engine.rb

person cthulhu    schedule 24.07.2012

Для справки в будущем важная строка в rails_admin/engine.rb (по крайней мере, в моем случае) была следующей:

require 'bootstrap-sass'

После того, как я добавил это в свой engine.rb, ошибка у меня исчезла.

person Craig H    schedule 22.10.2014