【问题标题】:Rails - Controller Naming QuestionRails - 控制器命名问题
【发布时间】:2011-08-09 17:14:58
【问题描述】:

我有一个项目和权限模型。

在我的应用中,我希望有 2 个对话框,用于创建权限、修改权限和查看项目的权限。

我应该使用什么控制器/方法来不弄乱 Rails 框架的意图?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    您可能需要 ProjectsControllerPermissionsController 以保持简单,但请确保到 Permission 的路由嵌套在您的路由中:

    resources :projects do |project|
      project.resources :permissions
    end
    

    有时将其命名为 Projects::PermissionsController 是有利的,以确保您不会直接在权限上使用它,明确说明两者密切相关:

    resources :projects do |project|
      project.resources :permissions, :controller => 'projects/permissions'
    end
    

    在这种情况下,访问权限的唯一方法是为其提供项目的上下文,这也适用于路由:

    link_to('Edit', project_permissions_path(@project))
    

    【讨论】:

    • 该路由语法在 Rails 3 中有效吗?我知道第 2 版和第 3 版之间有很多路线变化。
    • 谢谢 Tad,模型设置很有意义。让我感到困惑的是,对于列出的 3 个用例,我使用了哪些方法?创建权限、修改权限和查看权限
    • @brettish 这是用于定义路由的 Rails 3 语法。旧方式是map.resources
    • @tadman 谢谢,我对 Rails 3 很陌生,只使用过resources :projects do resources :permissions end(没有项目变量),所以它对我来说有点陌生。
    • @brettish 答案中概述的方式不需要块变量,并且功能只是像您描述的那样非常敏锐。我什至会说你的方法是 Rails 3 更常见的方法,至少根据路由指南。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2011-12-07
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多