将路由映射到作为过滤器的作用域

时间:2010-12-26 16:16:43

标签: ruby-on-rails ruby-on-rails-3

假设我有一个名为Order的模型,其范围为

scope :paid, where("paid_at IS NOT NULL")
scope :outstanding, where("paid_at IS NULL")

现在我希望我的应用程序在myapp / orders上列出所有订单(包括付费和未付款),并仅列出 myapp / paid myapp / orders / paid上的付费订单。优秀的相似。

有没有方便的方法呢?我还可以在routes.rb中使用RESTful路由resources :orders吗?有没有内置的方法来实现这一目标?

编辑:路径错了。

1 个答案:

答案 0 :(得分:0)

没有内置的方法来完成这个结构。

然而,一个真正的RESTful艺术家会说,你可以创建一个付费控制器用于索引选项,以显示@paid = Order.paid

现在我个人将打破建议的RESTful设计,允许一个额外的获取。在这种情况下,我会将付费的路线顺序映射到匹配'付费',然后只需输入控制器@paid = Order.paid'(可能需要分页,但是你的电话)。