2016-07-07 9 views
1

Ich stieß auf ein Problem bei der Durchführung der Authentifizierung Tutorial in der Authentifizierung mit Rails 4 in Aktion Buch.Rails 4 Rake db: migrate verursacht ungültige Route Fehler nach Devise installieren

Ich fügte gem "devise", "~> 3.4.1" zu meinem Gemfile hinzu, lief bundle und lief den Generator rails g devise:install.

Dann generierte ich Benutzer wie es in Buch mit geschrieben wurde: rails g devise user.

Bis zu diesem Teil war alles in Ordnung. Dann lief ich bundle exec rake db:migrate und habe diesen Fehler:

$ bundle exec rake db:migrate 
rake aborted! 
ArgumentError: Invalid route name, already in use: 'new_user_session' 
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: 
http://guides.rubyonrails.org/routing.html#restricting-the-routes-created 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:360:in `block in devise_session' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:359:in `devise_session' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:249:in `block (4 levels) in devise_for' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:249:in `each' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:249:in `block (3 levels) in devise_for' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:452:in `with_devise_exclusive_scope' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:248:in `block (2 levels) in devise_for' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:351:in `block in devise_scope' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:350:in `devise_scope' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:247:in `block in devise_for' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:223:in `each' 
/var/lib/gems/2.3.0/gems/devise-3.4.1/lib/devise/rails/routes.rb:223:in `devise_for' 
/home/rafal/ruby_workspace/ticketee/config/routes.rb:4:in `block (2 levels) in <top (required)>' 
/home/rafal/ruby_workspace/ticketee/config/routes.rb:3:in `block in <top (required)>' 
/home/rafal/ruby_workspace/ticketee/config/routes.rb:1:in `<top (required)>' 
/home/rafal/ruby_workspace/ticketee/config/environment.rb:5:in `<top (required)>'/var/lib/gems/2.3.0/gems/rake-11.2.2/exe/rake:27:in `<top (required)>' 
Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

Hier ist mein routes.rb:

Rails.application.routes.draw do 
    devise_for :users 
    Rails.application.routes.draw do 
    devise_for :users 
    root "projects#index" 

    resources :projects do 
     resources :tickets 
    end 
    end 
end 
+0

Bitte poste den Inhalt von 'config/routes.rb'. – SoAwesomeMan

+0

Ich postete es als Antwort – fafal

+1

Okomikerkukos Lösung unten sieht echt aus. Wenn es funktioniert, sollten Sie es als Antwort akzeptieren: http://meta.stackexchange.com/a/5235/249307. Auch, bitte posten Sie keine Daten als Antwort-entweder 1) ** bearbeiten ** Ihre Frage, um es aufzunehmen; oder 2) poste es anderswo wie https://gist.github.com und füge den Link in deine Frage mit ** edit ** ein. – SoAwesomeMan

Antwort

2

Sieht aus wie du hast bei schlechter Verschachtelung

Es soll wie folgt aussehen:

Rails.application.routes.draw do 
    root "projects#index" 
    devise_for :users 
    resources :projects do 
    resources :tickets 
    end 
end 
Verwandte Themen