私は、次のような効果を持っている私のルートを設定する方法がわからない:Ruby on Rails 4のカスタム編集と更新のアクションと同じカスタムルートを照合する方法は?
私は今持っているもの:
get 'change_password' => 'staffs#edit_password', as: :change_staff_password
patch 'change_password' => 'staffs#update_password', as: :change_staff_password
しかし、それはエラーが発生します。ArgumentError: Invalid route name, already in use: 'change_staff_password_staff'
これは、パスが「change_password_staff」の名前がas:
でないためです。しかし、わかりやすくするために、"change_staff_password"のスタッフが真ん中にいてほしいです。
私はmatch
を見上げるとmatch ":controller/:action/:id"
が見つかりましたが、どのように私はパスが同じパス名を共有できるようにするには、このを設定する必要がありますか?
ルートにアタッチされたas:valueを使用すると、Railsアプリケーションでurlを生成するメソッドを定義できます。これらはそれぞれのルートに固有のものでなければなりません。そうしないと、Railsアプリケーションはメソッドを呼び出すときにどのルートを生成しているのか分かりません。ルートのgetとpatchは同じルート名と一致する必要があります。なぜなら、最後に生成されるurlメソッドの名前を違うものに変更するだけです。 – hypern