6

Railsを学び始めており、ワイルドカードルートという用語が表示されていますが、ルートが次の両方の方法でリストされているのを確認しました。

/a/path/*all', :all => /.*/

/a/path/:all

これら2つのルート形式の違いは何ですか?

4

1 に答える 1

23

ルーティングに関するRails ガイドをもう読みましたか? これは、Rails でのルーティングについて学び始めるのに最適な場所です。

たとえば、2 番目のコード ブロックがワイルドカード ルートではないことがわかります。代わりに、上記のガイドで静的セグメントと呼ばれるものと一致します

また、最初のコード ブロックで試みているように見えるセグメントに制限を課すには、このワイルドカード route:constraintsなどのオプションを使用するか、上記のガイドで言及されているように、Route Globbingを使用する必要があることも学びます。

GET  "/a/path/*all", :constraints => { :all => /.*/ }

ただし、ワイルドカードはデフォルト*allで一致するため、上記の制約は冗長です。.*

于 2012-07-30T23:45:12.437 に答える