2014-10-01 13 views
5

Stavo cercando di creare un modello User con devise (finora nella mia applicazione non ho avuto problemi con la creazione di modelli o l'aggiunta di attributi). CorroRails devise error "NoMethodError ... merge"

rails g devise user 

che crea questo:

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 

poi cerco di correre

rake db:migrate 

Il che mi dà il seguente

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) 

Quale potrebbe essere il problema?

linea 2 per le rotte è:

devise_for :users 

E la linea 5 per l'ambiente è:

Rails.application.initialize! 

risposta

2

Sembra che questo può essere un problema con Devise e l'ultima versione di Rails. Date un'occhiata a questi temi in Devise Github:

Questo blog post spiega che c'è un ramo con la correzione, tuttavia, se avete intenzione di utilizzandolo in produzione probabilmente dovresti aspettare fino a quando Devise unirà la correzione in master.

+0

Grazie, per intanto devo solo passare la mia lista gemma da questo: gioiello 'inventare', '~> 3.3.0' a questo: gioiello 'inventare', '~> 3.3.0',: git => 'https://github.com/plataformatec/devise.git',: branch => 'lm-rails-4-2' –

+0

Sì, provalo e dovrebbe risolvere il problema. Ricordati di scambiarlo prima di andare in diretta. –

+0

Questi problemi sono ora chiusi e la versione più recente di Idea non ha più questo problema. – campeterson

22

controllare quale versione testamentaria avete installato eseguendo:

bundle show devise 

Con l'ultima versione di Rails 4.2.0, ideare dovrà essere aggiornato a 3.4.0 o superiore. Per fare ciò, specificare nella vostra Gemfile:

gem 'devise', '~> 3.4.0' 

Poi gestita:

bundle update devise 
+0

Grazie! La mia idea era scaduta, prima di unire questa correzione. –

+0

@lorindaapps - Grazie! per me va bene. 1+ per questo. – kpp

1

Aggiornamento della versione di escogitare da 3.3.0 a 3.4.0 nel mio Gemfile e funzionante fascio aggiornamento escogitare funzionato come per magia per me. Im running rail 4.2.0.