0
私のアプリケーション内の/felines
のルートを/cats
に変更しようとしていますが、できる限り私のアプリケーションコードを少し変更しています(つまり、コントローラ、またはURLヘルパーへの参照)。ルートリネームとリダイレクトが間違ったURLヘルパーを生成する
routes.rb
で私は
get '/felines', to: redirect('/cats')
resources :cats, as: 'felines'
- をしています
/cats
でFelinesController#index
を提供しています - - 良いと
/cats
に/felines
をリダイレクト -
も良いしかし、デバッグ時に、私は
ことがわかりましたnew_feline_path
は/cats/new
ある - BAD - 良いfelines_path
は/felines
です!
Iはまた、所望のように、私はroutes.rb
内の2つの行の順序を切り替えた場合felines_path
は、/cats
となるであろうことを見出しました。
なぜこれらの行の順序がfelines_path
の値に影響しますか?
私は再ルーティングとリダイレクトを達成するための良い方法はありますか?
恐ろしいを上書きしないように、カスタムルートの別の名前を割り当てます!いくつかのフォローアップの質問:1.なぜnew_feline_pathもトップダウン優先度の対象にならなかったのですか? 2. 'felines_redirect'の値は、既存のルートと違って、まったく重要ですか? – tuff
本当に 'new_feline_path'を上書きするものはありません。それは 'resources:cats、by:felines 'によって生成されます。 'felines_redirect'の値はあなたのビューのどこかでヘルパーを使う予定がない限り重要ではありません。レールをデフォルトにしないために追加しています。 – usha