2 つのレール ルーティング機能 (デフォルト パラメータとパラメータ マッチング) の組み合わせに問題があります。それぞれを個別に解決するのは簡単ですが、組み合わせると、結果は私が求めているものとはまったく異なります.
ルール:
get "/foobars(.:format)" => "foobars#index", :defaults => {:format => :json}, :format => /(xml|json)/
私が欲しいもの:
formatパラメータはオプションです- no
formatが含まれている場合、デフォルトのフォーマットはjson formatが含まれている場合はxml、それがjson- など、サポートされていない
formatものが渡された場合html、このルート ルールは一致しません。
私が得ているもの:
formatパラメータはオプションです- no
formatが含まれている場合、デフォルトのフォーマットはjson formatが含まれている場合はxml、それがjson- などのサポートされていない
formatものが渡された場合baz、このルート ルールは一致し、形式を に設定しますJSON。
ポイントの違い#4は、私が解決しようとしているものです。言い換えれば、私はこれを求めています:
GET /foobars => "foobars#index" with format `json`
GET /foobars.json => "foobars#index" with format `json`
GET /foobars.xml => "foobars#index" with format `xml`
GET /foobars.baz => "something#else" handled by another route rule lower down
ここで何が間違っていますか?