【问题标题】:Should I have two Controllers when one of the models invariably is dependent of the other?当其中一个模型总是依赖于另一个时,我应该有两个控制器吗?
【发布时间】:2014-01-26 00:11:03
【问题描述】:

我有两个模型 UserProjectone-to-many 关联。

Project 的实例(或集合)本身永远不会“CRUD:ed”,它始终作为@user 的属性在上下文中。

Project 是否应该仍然有它自己的Controller,其每个操作都必须查找请求是针对哪个User 或者我应该在UsersController 中添加与项目相关的操作,例如:

class UsersController < ApplicationController
  def show_projects
    @user.projects
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby rest model-view-controller controller


    【解决方案1】:

    我会为项目模型提供一个控制器。如果您考虑 RESTful 操作,那么您可以考虑调用类似 /projects/1 的内容(或其他带有附加 /user 的 url 的操作,例如 /user/{ID_user}/projects/1)以获取 ID 为 1 的项目并在处理该请求检查用户权限内容的操作。此外,例如请求 /projects 将处理调用以获取所有用户的项目。

    我认为尽管您的 Project 模型与您的 User 模型有很强的依赖关系,但这并不意味着您不能 CRUD 您的 Project 模型。我想在您的应用程序中的某个地方您将需要创建项目,并且这将是为项目模型放置 CRUD 操作的地方。也许我对此有误(关于您的应用程序的信息很少,很难进一步分析您的问题),但您的 Project 模型听起来就像您的 User 模型一样是一流的实体。

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多