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

all*_*lar 1 gem ruby-on-rails sass rails-engines twitter-bootstrap

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

我真正想要的是它基于Twitter Bootstrap + SASS.

如果我在我的引擎的gemspec文件中只有这些行:

  gem.add_dependency "railties", "~> 3.2"
  gem.add_dependency "sass-rails"
  gem.add_dependency "bootstrap-sass"
Run Code Online (Sandbox Code Playgroud)

尝试访问页面时出现此错误:

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)):
Run Code Online (Sandbox Code Playgroud)

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

gem 'bootstrap-sass'
Run Code Online (Sandbox Code Playgroud)

所以我得到以下几行:

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
Run Code Online (Sandbox Code Playgroud)

它现在工作正常.我认为这个依赖项严格属于Rails引擎gem,应该就在那里.

是什么赋予了?

cth*_*lhu 7

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