【问题标题】:Why do I need the gem in the host application为什么我需要主机应用程序中的 gem
【发布时间】:2012-07-22 23:30:58
【问题描述】:

我正在开发我的第一个 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,应该存在。

什么给了?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      require 'bootstrap-sass'
      

      在我将它添加到我的 engine.rb 之后,错误就消失了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-13
        • 2011-01-19
        • 2021-02-21
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多