1

「請求書」の標準的なリソースの多いルート設定がありますが、状態に基づいて請求書レコードをフィルター処理する機能を追加しようとしています。

/invoices - shows all invoices
/invoices/unpaid - shows all unpaid invoices
/invoices/paid - shows all paid invoices.
/invoices/3 - shows invoice #3

明示的に定義された一致ルートで問題なく動作するようになりました。

match "/invoices/pending" => "invoices#index", :state => 'pending'

ただし、考えられる状態の数が増えると、これはルートを定期的に変更することを意味し、また、かなりの回数を繰り返すことを意味します。

私の次の試みは、このルートをマッチ ルートの名前付きパラメータでもう少し動的にすることでした。

match "/invoices/:state" => "invoices#index"

ただし、これは /invoices/id ルートを否定し、状態パラメーターに基づいて検索しているため、/invoices/3 を検索しようとしてもレコードが見つかりません。

このような動的に機能するフィルタールートの定義を手伝ってくれる人はいますか?

4

3 に答える 3