Rails没有从Gemfile加载actionform gem

时间:2015-02-25 01:26:09

标签: ruby-on-rails gem rubygems bundler

我的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

有关此问题的任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

问题是gem名称和gem内部文件不匹配。由于gem名为' actionform',Bundler将尝试require 'actionform',但该文件实际上称为action_form

您可以使用以下语法告诉Bundler正确的文件名:

gem 'actionform', :github => 'rails/actionform', :require => 'action_form'

请注意,将git源中的gem安装到与gem服务器安装的gem不同的位置是正常的。它与这个问题无关。