2014-10-01 40 views
5

我試圖用devise製作用戶模型(到目前爲止在我的應用程序中,我沒有製作模型或添加屬性的問題)。我跑Rails設計錯誤「NoMethodError ...合併」

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! 

回答

2

它看起來像這可能是與設計問題和Rails的最新版本。看看上設計Github上這些問題:

blog post解釋存在與修復的一個分支,但是,如果你要在生產中使用它時,您應該等到Devise將修復合併到master中。

+0

謝謝,與此同時我應該切換我的寶石列表: gem'devise','〜> 3.3.0' 對此: gem'devise','〜> 3.3.0',: git =>'https://github.com/plataformatec/devise.git',:branch =>'lm-rails-4-2' – 2014-10-01 15:42:30

+0

是的,試試看,它應該解決這個問題。請記住在你上線之前交換它。 – 2014-10-01 15:43:39

+0

這些問題現在已關閉,最新版本的設計不再存在此問題。 – campeterson 2015-04-09 17:00:14

22

檢查什麼色器件版本已通過運行安裝:

bundle show devise 

使用Rails 4.2.0的最新版本,設計將需要升級到3.4.0或更高版本。要做到這一點,請在您的Gemfile:

gem 'devise', '~> 3.4.0' 

然後運行:

bundle update devise 
+0

謝謝!在他們合併這個修復之前,我的設計已經過時了。 – 2015-01-14 16:31:57

+0

@lorindaapps - 謝謝!爲我工作。 1+爲此。 – kpp 2015-05-04 06:27:52

1

在我的Gemfile更新色器件從3.3.0版本到3.4.0並運行包更新色器件像變魔術一樣工作爲了我。我正在運行rails 4.2.0。