【发布时间】:2014-11-19 13:59:57
【问题描述】:
对于如何正确访问与特定模型无关的 Rails 控制器中的操作,我有些困惑。默认情况下,路由文件似乎将操作名称路由到“id”。因此,如果我输入 /user/login,我最终会收到一条错误消息:“找不到具有 'id'= login 的用户”
在 Rails 中访问任意动作名称的正确方法是什么?
【问题讨论】:
标签: ruby-on-rails
对于如何正确访问与特定模型无关的 Rails 控制器中的操作,我有些困惑。默认情况下,路由文件似乎将操作名称路由到“id”。因此,如果我输入 /user/login,我最终会收到一条错误消息:“找不到具有 'id'= login 的用户”
在 Rails 中访问任意动作名称的正确方法是什么?
【问题讨论】:
标签: ruby-on-rails
显然,为它制定路线。请求是这样的:
resource 和 resources 可能对它们的作用并不明显。但实际上,它们是经常使用的相应路由集合的简写,例如this is what resources adds。而且它们不是单体,它们可以根据您的需求进行定制。提供选项只是一个开始,您可以提供一个块来为此资源定义自定义操作路线,如下所示:
resources :users do
get :login
end
这将添加一个映射到 UsersController#login 的 /users/login 路由,遵循 Rails 的约定。
See this guide 了解更多详情,别忘了运行 rake routes 以查看您目前拥有的信息。
【讨论】: