我已经为“发票”设置了一个标准的资源丰富的路由设置,但是我希望添加基于状态过滤发票记录的功能。
/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 找不到任何记录,因为它正在根据 state 参数进行搜索。
任何人都可以帮助定义一个可以动态工作的过滤器路由吗?