在rails中访问任意操作

时间:2014-11-19 13:59:57

标签: ruby-on-rails

我对如何正确访问与某个特定模型无关的rails控制器中的操作感到困惑。默认情况下,路由文件似乎将操作名称路由到“id”。因此,如果我键入,例如/ user / login,我最终会收到一条错误消息:“无法找到具有'id'= login的用户”

在rails中访问任意操作名称的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

显然,为它做一条路线。请求是这样的:

  • 首先遇到路线
  • 从那里击中控制器的动作
  • [动作可以调用模型](可选,但很常见)
  • controller指定了一个视图并获取要渲染的数据
  • 视图将被发回以响应请求

resourceresources可能并不明显。但实际上,它们往往是常用的相应路线集合的缩写,如this is what resources adds。它们不是巨石,它们可以根据您的需求进行定制。提供选项只是一个开始,您可以提供一个块来定义此资源的自定义操作路由,如下所示:

resources :users do
  get :login
end

这会根据Rails的约定添加映射到/users/login的{​​{1}}路由。

See this guide了解更多详情,不要忘记运行UsersController#login以查看您目前所拥有的内容。