我正在尝试将一个现有的应用程序迁移到ruby 2.0 + rails 4.0,到目前为止,除了我试图安装devise之外,一切都很正常:
rails generate devise:install我得到以下错误:
Exiting
/home/lemur/rails_projects/delicateca/config/initializers/devise.rb:76:in `block in <top (required)>': undefined method `skip_session_storage=' for Devise:Module (NoMethodError)
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/devise-1.5.4/lib/devise.rb:252:in `setup'
from /home/lemur/rails_projects/delicateca/config/initializers/devise.rb:3:in `<top (required)>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:222:in `load'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:222:in `block in load'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:222:in `load'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/engine.rb:608:in `block (2 levels) in <class:Engine>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/engine.rb:607:in `each'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/engine.rb:607:in `block in <class:Engine>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `instance_exec'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `run'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:210:in `block (2 levels) in each_strongly_connected_component_from'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:219:in `each_strongly_connected_component_from'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:209:in `block in each_strongly_connected_component_from'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:44:in `each'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:44:in `tsort_each_child'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:203:in `each_strongly_connected_component_from'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:182:in `block in each_strongly_connected_component'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:186:in `each'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:186:in `each_strongly_connected_component'
from /home/lemur/.rvm/rubies/ruby-2.0.0-preview1/lib/ruby/2.0.0/tsort.rb:154:in `tsort_each'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:54:in `run_initializers'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/application.rb:213:in `initialize!'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /home/lemur/rails_projects/delicateca/config/environment.rb:5:in `<top (required)>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `block in require'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
from /home/lemur/rails_projects/delicateca/config.ru:3:in `block in <main>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
from /home/lemur/rails_projects/delicateca/config.ru:in `new'
from /home/lemur/rails_projects/delicateca/config.ru:in `<main>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/commands/server.rb:46:in `app'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/commands/server.rb:71:in `start'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/commands.rb:78:in `block in <top (required)>'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/commands.rb:73:in `tap'
from /home/lemur/.rvm/gems/ruby-2.0.0-preview1/gems/railties-4.0.0.beta1/lib/rails/commands.rb:73:in `<top (required)>'
from script/rails:6:in `require'当我尝试运行应用程序时,我得到了同样的错误,只做捆绑安装,然后运行rails s。
有什么想法吗?
谢谢!
发布于 2013-03-10 07:29:16
这似乎是一个依赖性问题,正如Aaron Paterson所解释的那样:
http://tenderlovemaking.com/2012/12/18/rails-4-and-your-gemfile.html
解决方案(在注释中)是使用以下命令更新您的gemfile:
gem 'devise',github:'idl3/devise',分支:'rails4‘
发布于 2013-04-06 00:16:33
更新
rails4分支现在已合并到master中。因此,这应该是您现在需要的全部内容:
gem 'devise', github: 'plataformatec/devise'
我已经在下面留下了我以前的答案。
================================================
目前最简单的修复方法是在您的gemfile中使用以下代码:
gem 'devise', github: 'plataformatec/devise', branch: 'rails4'更多细节可以在Devise的这个拉取请求的comment上找到。
在Lemurido's响应时,他是您错误的最佳解决方案。
https://stackoverflow.com/questions/15317017
复制相似问题