【问题标题】:Rails routes to set of resources?Rails路由到资源集?
【发布时间】:2012-08-16 22:15:24
【问题描述】:

典型的 Rails 路线,例如:

 resource :customer

为索引、显示等设置路线

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

/customers

要访问单个客户,我使用:

/customers/1

创建允许用户查看一组客户的路由和控制器操作的最简洁、RESTful 方式是什么,例如

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

更新理由

用例:

  • 将通过 Javascript 调用此操作,以提供有关选定用户的详细信息。如果用户通过界面选择 3 个客户,我希望一个请求为所有 3 个客户提取信息,而不是必须提出 3 个单独的请求

【问题讨论】:

  • 这些客户有什么关系?例如,如果我想在同一页面上查看客户 1、2、3、4 和 5,我为什么要查看这些特定客户?
  • 我认为这可以通过更多关于您的情况的信息来更好地清理。
  • 我仍然不相信“RESTful”意味着从不使用查询参数,IMO 在这里可能是一个合理的解决方案。
  • @JacobWG 我已经考虑过相同的路径......也许添加一个“组”模型来代表一组客户。由于用户可以选择任意客户,因此预定义组不适用于我的用例

标签: ruby-on-rails rest routes


【解决方案1】:

您可以保持路线简单:resources :customers

id 列表将被路由视为:id,您将在params[:id] 中获得[1, 2, 3, 4]

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

【讨论】:

  • 希望有一些惯用的 Rails/REST 方式来做到这一点,但由于似乎没有就您的方法听起来可行的共识。
猜你喜欢
  • 2016-11-12
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多