我的Rails 4.2应用无法加载一些GitHub托管的gem(通过bundler v1.8.2安装)。我正在使用rvm 1.26.10(master)
在我的Gemfile
,
gem 'simple_form', '~> 3.1.0'
gem 'actionform', :github => 'rails/actionform'
Bundler将它们安装在不同的位置:
$ bundle show simple_form
/Users/me/.rvm/gems/ruby-2.1.5@my_app/gems/simple_form-3.1.0
$ bundle show actionform
/Users/me/.rvm/gems/ruby-2.1.5@my_app/bundler/gems/actionform-4a858fecf4c2
Rails永远不会加载actionform
gem。
将行//= require action_form
插入我的app/assets/javascript/application.js
文件后,会出现此错误
Sprockets :: FileNotFound at / couldn找不到文件' action_form' 但是,
action_form.js
文件存在于gem文件中。
此外,当我尝试重现自述示例时,我收到了此错误
/ meetings / new未初始化常量ActionForm
中的NameError
require 'bundler/setup'
位于boot.rb
有关此问题的任何建议吗?
谢谢!
答案 0 :(得分:4)
问题是gem名称和gem内部文件不匹配。由于gem名为' actionform',Bundler将尝试require 'actionform'
,但该文件实际上称为action_form
。
您可以使用以下语法告诉Bundler正确的文件名:
gem 'actionform', :github => 'rails/actionform', :require => 'action_form'
请注意,将git源中的gem安装到与gem服务器安装的gem不同的位置是正常的。它与这个问题无关。