Devise: undefined method `rails51?' for Devise:Module

Created on 29 Apr 2017  路  5Comments  路  Source: heartcombo/devise

Given recent merge I gave a try to devise on a Rails 5.1 project by adding gem 'devise', github: 'plataformatec/devise' to the Gemfile.

But now, the following error pops up when running rails s command:

~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models/database_authenticatable.rb:140:in <module:DatabaseAuthenticatable>': undefined methodrails51?' for Devise:Module (NoMethodError)

=== full error

~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models/database_authenticatable.rb:140:in <module:DatabaseAuthenticatable>': undefined methodrails51?' for Devise:Module (NoMethodError)
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models/database_authenticatable.rb:25:in <module:Models>' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models/database_authenticatable.rb:4:in'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models/database_authenticatable.rb:3:in <top (required)>' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:inrequire'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in block in require' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:256:inblock in load_dependency'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:661:in new_constants_in' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:256:inload_dependency'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in require' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:88:inconst_get'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:88:in block (2 levels) in devise' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:87:ineach'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:87:in block in devise' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:114:indevise_modules_hook!'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/models.rb:84:in devise' from ~/Rails51App/app/models/user.rb:6:in'
from ~/Rails51App/app/models/user.rb:1:in <top (required)>' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:476:inload'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:476:in block in load_file' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:661:innew_constants_in'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:475:in load_file' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:374:inblock in require_or_load'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:36:in block in load_interlock' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies/interlock.rb:12:inblock in loading'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/concurrency/share_lock.rb:149:in exclusive' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies/interlock.rb:11:inloading'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:36:in load_interlock' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:357:inrequire_or_load'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:510:in load_missing_constant' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:202:inconst_missing'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/inflector/methods.rb:269:in const_get' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/inflector/methods.rb:269:inblock in constantize'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/inflector/methods.rb:267:in each' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/inflector/methods.rb:267:ininject'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/inflector/methods.rb:267:in constantize' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:582:inget'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:613:in constantize' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise.rb:305:inget'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/mapping.rb:81:in to' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/mapping.rb:76:inmodules'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/mapping.rb:93:in routes' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/mapping.rb:160:indefault_used_route'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/mapping.rb:70:in initialize' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise.rb:335:innew'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise.rb:335:in add_mapping' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/rails/routes.rb:241:inblock in devise_for'
from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/rails/routes.rb:240:in each' from ~/.gem/ruby/2.4.0/bundler/gems/devise-0fe308e7a77f/lib/devise/rails/routes.rb:240:indevise_for'
from ~/Rails51App/config/routes.rb:7:in block in <top (required)>' from ~/.gem/ruby/2.4.0/gems/actionpack-5.1.0/lib/action_dispatch/routing/route_set.rb:424:ininstance_exec'
from ~/.gem/ruby/2.4.0/gems/actionpack-5.1.0/lib/action_dispatch/routing/route_set.rb:424:in eval_block' from ~/.gem/ruby/2.4.0/gems/actionpack-5.1.0/lib/action_dispatch/routing/route_set.rb:406:indraw'
from ~/Rails51App/config/routes.rb:1:in <top (required)>' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:inload'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in block in load' from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:inload_dependency'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in load' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:55:inblock in load_paths'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:55:in each' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:55:inload_paths'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:18:in reload!' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:41:inblock in updater'
from ~/.gem/ruby/2.4.0/gems/activesupport-5.1.0/lib/active_support/file_update_checker.rb:81:in execute' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:42:inupdater'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/routes_reloader.rb:31:in execute_if_updated' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application/finisher.rb:128:inblock in '
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/initializable.rb:30:in instance_exec' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/initializable.rb:30:inrun'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/initializable.rb:59:in block in run_initializers' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:228:inblock in tsort_each'
from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:350:in block (2 levels) in each_strongly_connected_component' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:431:ineach_strongly_connected_component_from'
from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:349:in block in each_strongly_connected_component' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:ineach'
from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:in call' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:347:ineach_strongly_connected_component'
from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:226:in tsort_each' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/tsort.rb:205:intsort_each'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/initializable.rb:58:in run_initializers' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/application.rb:353:ininitialize!'
from ~/Rails51App/config/environment.rb:5:in <top (required)>' from config.ru:3:inrequire_relative'
from config.ru:3:in block in <main>' from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/builder.rb:55:ininstance_eval'
from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/builder.rb:55:in initialize' from config.ru:innew'
from config.ru:in <main>' from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/builder.rb:49:ineval'
from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/builder.rb:49:in new_from_string' from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/builder.rb:40:inparse_file'
from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/server.rb:318:in build_app_and_options_from_config' from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/server.rb:218:inapp'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:24:in app' from ~/.gem/ruby/2.4.0/gems/rack-2.0.1/lib/rack/server.rb:353:inwrapped_app'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:80:in log_to_stdout' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:42:instart'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:130:in block in perform' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:125:intap'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands/server/server_command.rb:125:in perform' from ~/.gem/ruby/2.4.0/gems/thor-0.19.4/lib/thor/command.rb:27:inrun'
from ~/.gem/ruby/2.4.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in invoke_command' from ~/.gem/ruby/2.4.0/gems/thor-0.19.4/lib/thor.rb:369:indispatch'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/command/base.rb:63:in perform' from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/command.rb:44:ininvoke'
from ~/.gem/ruby/2.4.0/gems/railties-5.1.0/lib/rails/commands.rb:16:in <top (required)>' from ~/Rails51App/bin/rails:9:inrequire'
from ~/Rails51App/bin/rails:9:in <top (required)>' from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/client/rails.rb:28:inload'
from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/client/rails.rb:28:in call' from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/client/command.rb:7:incall'
from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/client.rb:30:in run' from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/bin/spring:49:in from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/binstub.rb:31:in load' from ~/.gem/ruby/2.4.0/gems/spring-2.0.1/lib/spring/binstub.rb:31:in from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:68:in require' from ~/.rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:68:inrequire'
from ~/Rails51App/bin/spring:15:in <top (required)>' from bin/rails:3:inload'
from bin/rails:3:in `

'

Most helpful comment

@gvinicius and @wurde Thx for your confirmation. I think I found a way to fix this and proposed a fix for it.
Waiting for @plataformatec to validate the pull request.

All 5 comments

Proposed fix:
Add the following code
def self.rails51? Rails.version.start_with? '5.1' end
to devise/lib/devise.rb

Hey, @spaquet, I got the same problem just now.

Confirmed. Trying to upgrade to the latest Rails 5.1 update and Devise gem is tripping over itself.

@gvinicius and @wurde Thx for your confirmation. I think I found a way to fix this and proposed a fix for it.
Waiting for @plataformatec to validate the pull request.

+1

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mvz picture mvz  路  3Comments

mits87 picture mits87  路  3Comments

BimaPanduW picture BimaPanduW  路  3Comments

edipox picture edipox  路  4Comments

ragesoss picture ragesoss  路  3Comments