【问题标题】:Rails doesn't load actionform gem from GemfileRails 不会从 Gemfile 加载 actionform gem
【发布时间】:2015-02-27 17:49:23
【问题描述】:

我的 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 / 找不到文件 'action_form' 但是,action_form.js 文件存在于 gem 文件中。

此外,当我尝试重现自述文件示例时,出现此错误

NameError at /conferences/new uninitialized constant ActionForm

require 'bundler/setup'boot.rb

关于这个问题有什么建议吗?

谢谢!

【问题讨论】:

  • 如果我使用旧的m-Peter/activeform,一切正常。将此问题发布到 actionform 的 github issue

标签: ruby-on-rails gem rubygems bundler


【解决方案1】:

问题是 gem 名称和 gem 中的文件不匹配。因为 gem 被命名为 'actionform',Bundler 会尝试require 'actionform',然而文件实际上被称为action_form

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

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

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

【讨论】:

  • 太棒了!我建议将问题的标题编辑为更像“Rails 不会从我的 Gemfile 加载 actionform gem”之类的内容,以便将来遇到相同问题的其他人更容易找到它。
猜你喜欢
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多