【问题标题】:Accessing an arbitrary action in rails访问 Rails 中的任意操作
【发布时间】:2014-11-19 13:59:57
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    显然,为它制定路线。请求是这样的:

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

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

    resources :users do
      get :login
    end
    

    这将添加一个映射到 UsersController#login/users/login 路由,遵循 Rails 的约定。

    See this guide 了解更多详情,别忘了运行 rake routes 以查看您目前拥有的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2010-09-18
      • 2017-01-04
      • 2016-08-21
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多