Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails 4.2.0.rc1 upgrade <module:InheritedResources>': uninitialized constant ActionController::Responder (NameError)

In my attempt to upgrade to rails 4.2.0.rc1 from 4.1.8 I get the following error when running the server:

joshRpowell@Joshuas-MacBook-Air:~/MyProjects/rentlit-app[hook]$ rails s
/Users/joshRpowell/.rvm/gems/[email protected]/gems/inherited_resources-1.5.1/lib/inherited_resources/responder.rb:2:in `<module:InheritedResources>': uninitialized constant ActionController::Responder (NameError)
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/inherited_resources-1.5.1/lib/inherited_resources/responder.rb:1:in `<top (required)>'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/inherited_resources-1.5.1/lib/inherited_resources.rb:4:in `<top (required)>'
from /Users/joshRpowell/.rvm/gems/[email protected]/bundler/gems/active_admin-951f35d6799a/lib/active_admin.rb:10:in `<top (required)>'
from /Users/joshRpowell/.rvm/gems/[email protected]/bundler/gems/active_admin-951f35d6799a/lib/activeadmin.rb:1:in `require'
from /Users/joshRpowell/.rvm/gems/[email protected]/bundler/gems/active_admin-951f35d6799a/lib/activeadmin.rb:1:in `<top (required)>'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:76:in `require'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:72:in `each'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:72:in `block in require'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:61:in `each'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler/runtime.rb:61:in `require'
from /Users/joshRpowell/.rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.7/lib/bundler.rb:133:in `require'
from /Users/joshRpowell/MyProjects/rentlit-app/config/application.rb:7:in `<top (required)>'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands/commands_tasks.rb:78:in `require'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands/commands_tasks.rb:78:in `block in server'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands/commands_tasks.rb:75:in `tap'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands/commands_tasks.rb:75:in `server'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/joshRpowell/.rvm/gems/[email protected]/gems/railties-4.2.0.rc1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'

In my application.rb file I have the following:

require File.expand_path('../boot', __FILE__)

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)

module Rentlit
  class Application < Rails::Application

    config.generators.helper = false
    config.generators.assets = false
    config.generators.view_specs = false
  end
end

Any suggestions on how to troubleshoot?

like image 713
josh p Avatar asked Dec 08 '22 05:12

josh p


2 Answers

They already solved it: https://github.com/josevalim/inherited_resources/commit/6d034d913bfd9b53ea2e5b31c4056578a1b170a4. I'm using the latest gem release with rails 4.2.1 and it's working ok.

For anyone experiencing the problem, try bundle update inherited_resources.

Old answer:

You have to use the specific branch for rails 4.2:

gem 'inherited_resources', github: 'josevalim/inherited_resources', branch: 'rails-4-2'
like image 63
Diego Avatar answered Jan 11 '23 02:01

Diego


I'm not entirely sure here, but I do know that action_controller/metal/responder.rb was removed from rails in 4.2 and almost directly copied to the responders gem's action_controller/responder.rb. You might try adding gem 'responders', '~> 2.0' to your Gemfile to see if that fixes it.

FWIW:

  • responders 2.x: responders/lib/action_controller/responder.rb
  • From Rails 4.1.8: rails/actionpack/lib/action_controller/metal/responder.rb
  • The metal/ dir in Rails 4.2.2.rc2: rails/actionpack/lib/action_controller/metal/ (notice there's no more responders.rb.
like image 41
turboladen Avatar answered Jan 11 '23 02:01

turboladen