0

在您指定的 ruby​​ on rails 中绘制宁静的路线时

  1. 如果控制器操作适用于成员或集合,并且
  2. 使用什么http动词。http://guides.rubyonrails.org/routing.html

如何从控制器实例中检查 1?(可以通过 来检查 HTTP 动词request.method

丑陋的 hack 是检查命名路由是否以单数或复数形式存在,但该路由可以有替代名称。

还有一个是检查用于识别成员的请求参数,但收集路由可以具有相同的(可选)参数。

4

2 回答 2

0

如果路线遵循宁静的约定,那么跑步rake routes应该会给你你正在寻找的答案。

您将看到预期的 http 动词(回答 2)并且路径应该回答您的 1)问题。对于成员操作,您需要 ID,因此通常路径包含 id

此路由配置:

resources :photos do
  member do
    get 'preview'
  end
end

将为您photos/:id/preview提供预览单张照片的路径-> ment

以及路由配置:

resources :photos do
  collection do
    get 'preview'
  end
end

将为您提供路径photos/preview -> ment 以预览照片列表

如果您需要从操作代码中获取此信息:

  • 检查 params[:id] 以区分意图。如果是针对成员的,则该值不会为零。
于 2012-11-12T12:47:00.687 回答
0

您是否查看过 Journey gem 的这种方法?假设 3.2,如果在任何地方,那将拥有它,而不是请求参数。到那时就太晚了不是吗?

于 2012-11-12T13:29:28.963 回答