0

私は、:/ IDの代わりに:特定の1つのモデルのIDを使用して短いURLを使用したいと思います。予約されたモデルでidでルーティングするレール

私が作る方法を知っている

:私は予約済み代を保つには注意しています、もちろん仮定して、正常に動作します一致

match ":id" => "artist#show", :as => :artist 

を使用して、IDの作業を、すなわち新しい/インデックス/編集など

しかし、id:が一致しないときに他のモデルをどのように動作させるにはどうしたらいいですか? IE/label/even/artist/new

私はまたネストすることでこれをやりたいので、私も持っています::artist_id /:album カスタムパスでネストされたルートを扱う簡単な方法はありますか?

おかげ

答えて

1

すべてのルートの優先順位が下がります。 routes.rbのshort-urlルートの上に特定のルートをすべて入れると、最初にマッチします。より具体的なものが何も一致しなければ、Railsはそれをartist#showにルーティングします。

特定のIDのアーティストがいない場合は、アーティストが探していない可能性があり、エラーがあった場合は一般的な404が表示されることを念頭に置いてください。

+0

私はそれが経路ファイルの中で優先順位にあったことに気付きませんでした。そして、私は感謝の前に一番上にそれを持っていました! – holden

関連する問題