70

ルートファイルに追加しました:

map.show_book "/show_book/:name/year/:year", :controller => "book", :action => "show_version"

私も追加しました:

map.show_book "/show_book/:name", :controller => "book", :action => "show_version"

年を指定せずに最新の本を表示します。

しかし、それは機能しません。私が年を過ぎないと、「show_book/NAME」でルートを見つけることができません。

なぜそれが機能しないのか、いくつかのアイデアがありますか?

ありがとう !

PS。「?year = XXXX」でパラメータとして年を使用できることは知っていますが、URLの一部として年を使用したいと思います

4

1 に答える 1

129

オプションの部分を括弧の間に入れます

map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"

2番目のルートを削除します。

アップデート

上記の回答は、レール3以上にのみ適用されます。2つのルート定義を逆にすると、問題が修正されました(以下のAlessandroのコメントを参照)。

于 2011-09-02T09:35:16.583 に答える