Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails doesn't load actionform gem from Gemfile

My Rails 4.2 app fails to load some GitHub hosted gem (installed via bundler v1.8.2). I am using rvm 1.26.10 (master)

In my Gemfile,

gem 'simple_form', '~> 3.1.0' gem 'actionform', :github => 'rails/actionform'

Bundler install them in different location: $ 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 never load the actionform gem. After inserting the line //= require action_form to my app/assets/javascript/application.js file, this error comes

Sprockets::FileNotFound at / couldn't find file 'action_form' However, the action_form.js file exists in the gem file.

Moreover, when i try to reproduce the readme example, i got this error

NameError at /conferences/new uninitialized constant ActionForm

require 'bundler/setup' is in boot.rb

Any advise about this issue?

Thanks!

like image 288
tangrufus Avatar asked Feb 04 '26 15:02

tangrufus


1 Answers

The problem is a mismatch between the gem name and the file inside the gem. Because the gem is named 'actionform', Bundler will try to require 'actionform', however the file is actually called action_form.

You can tell Bundler the right file name with this syntax:

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

Note that it is normal for gems from git sources to be installed into a different location than gems installed from gem servers. It has nothing to do with this problem.

like image 133
Tim Moore Avatar answered Feb 06 '26 03:02

Tim Moore