为什么我需要主机应用程序中的gem

时间:2012-07-24 15:37:49

标签: ruby-on-rails twitter-bootstrap gem sass rails-engines

我正在开发我的第一个Rails引擎。这是一个包含资产和基本功能的管理面板布局。

我真正想要的是它基于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)):

但是如果我将它添加到主机应用程序gemfile:

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引擎gem,应该就在那里。

是什么给出了?

2 个答案:

答案 0 :(得分:7)

看看'rails-admin'引擎。它使用'bootstrap-sass'并且它在engine.rb中需要它:https://github.com/sferik/rails_admin/blob/master/lib/rails_admin/engine.rb

答案 1 :(得分:1)

为了将来参考,rails_admin / engine.rb中的重要一行(至少在我的情况下)如下:

require 'bootstrap-sass'

我把它添加到我的engine.rb后,错误消失了。