2012-08-16 174 views
0

像一个典型的Rails路线:Rails路由到资源集?

resource :customer 

设置路线指数,显示等

访问所有的客户,我可以使用路由

/customers 

要访问单用户,我用:

/customers/1 

什么是最简洁,RESTful的方式创建一个路由和控制器的行动,将允许用户查看一组客户,即像

/customers/[1,2,3,4,5] 

与理

用例更新时间:

  • 此操作将通过Javascript调用以提供有关选定用户的详细信息。如果用户通过界面选择3个客户,我想一个请求拉方式为所有3,而不必让3个独立的请求
+0

这些客户是如何关联的?例如,如果我想在同一页面上看到客户1,2,3,4和5,为什么我要查看这些特定客户? – 2012-08-16 22:16:45

+0

我在想这可以通过一些关于您的情况的更多信息更好地清理。 – 2012-08-16 22:42:14

+0

我仍然不相信“RESTful”意味着永远不使用查询参数,这可能是一个合理的解决方案。 – 2012-08-17 13:53:21

回答

0

你可能只是保持你的路线很简单:resources :customers

通过路线将ID列表视为:id,您将在params[:id]中获得[1, 2, 3, 4]

然后在你的控制器中,例如before_filter,你可以检查id是否与某个正则表达式相匹配(比如... /\[(\d,)*\d\]/),如果是这种情况,你可以提取id。

+0

希望有一些惯用的Rails/REST方法可以做到这一点,但由于似乎没有共识,因此您的方法听起来像工作。 – 2012-08-23 03:59:51