2016-09-08 4 views
1

私はログインパスをルーティングしようとしているこの問題に遭遇しましたが、達成しようとしていますGET /loginsessions#newPOST /loginsessions#createに送信されます。が、Railsはこれは起動時に次のエラー発生させ同じものを使う:GETとPOSTを使って2つのレールのルートを別々のものにする

get "/login" => "sessions#new", :as => :login 
post "/login" => "sessions#create", :as => :login 

ないとしてこれを認識していないよう:

lib/action_dispatch/routing/route_set.rb:507:in 'add_route': Invalid route name, already in use: 'login' (ArgumentError) 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

のベストプラクティスがresources :sessions, only: [:new, :create], as: :login私は思いますが、操作を行うことであろうが最初に意図したように、とnew_login_pathのようなURLヘルパーを取得し、login_pathを取得しないでください。

答えて

1

これは私のRailsアプリケーションで行ったことです。

get 'login' => 'sessions#new' 
post 'login' => 'sessions#create' 

私は:as => :login一部があなたのエラーの原因となっているものだと思う、私は別名を割り当てるとそのことを考えると、次の2つの異なる経路のために同じエイリアスを使用することはできません。

+0

それは本当です..全く同じ結果をもたらします - なぜ私はこれを考えなかったのか分かりません!ありがとう! –

関連する問題