我的 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 显示 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't find file 'action_form' However, the
action_form.js
file exists in the gem file.
此外,当我尝试重现自述文件示例时,我得到了这个错误
NameError at /conferences/new uninitialized constant ActionForm
require 'bundler/setup'
在 boot.rb
关于这个问题有什么建议吗?
谢谢!
最佳答案
问题是 gem 名称和 gem 中的文件不匹配。因为 gem 被命名为“actionform”,Bundler 将尝试require“actionform”
,但该文件实际上名为 action_form
。
您可以使用以下语法告诉 Bundler 正确的文件名:
gem 'actionform', :github => 'rails/actionform', :require => 'action_form'
请注意,来自 git 源的 gem 安装到与从 gem 服务器安装的 gem 不同的位置是正常的。与此问题无关。
关于ruby-on-rails - Rails 不从 Gemfile 加载 actionform gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28709575/