簡體   English   中英

Rails設計錯誤“NoMethodError ... merge”

[英]Rails devise error “NoMethodError … merge”

我試圖用設計制作用戶模型(到目前為止,在我的應用程序中,我沒有制作模型或添加屬性的問題)。 我跑

rails g devise user

這創造了這個:

  invoke  active_record
  create    db/migrate/20140930235224_devise_create_users.rb
  create    app/models/user.rb
  invoke    test_unit
  create      test/models/user_test.rb
  create      test/fixtures/users.yml
  insert    app/models/user.rb
  route  devise_for :users

然后我試着跑

rake db:migrate

這給了我以下幾點

rake aborted!
NoMethodError: undefined method `merge!' for #<ActionDispatch::Routing::Mapper::Scope:0x9fc73a4>
/home/user/Desktop/MyApp/config/routes.rb:2:in `block in <top (required)>'
/home/user/Desktop/MyApp/config/routes.rb:1:in `<top (required)>'
/home/user/Desktop/MyApp/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

可能是什么問題呢?

路線2是:

devise_for :users

環境的第5行是:

Rails.application.initialize!

通過運行檢查已安裝的設備版本:

bundle show devise

使用最新版本的Rails 4.2.0,設計需要升級到3.4.0或更高版本。 為此,請在Gemfile中指定:

gem 'devise', '~> 3.4.0'

然后運行:

bundle update devise

看起來這可能是Devise和最新版Rails的問題。 在Devise Github上看看這些問題:

這篇博客文章解釋說有一個修復分支,但是,如果你打算在生產中使用它,你應該等到Devise將修復合並到master。

在我的Gemfile中將設備版本從3.3.0更新到3.4.0並運行bundle update devise對我來說就像魔術一樣。 我正在運行rails 4.2.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM