当其中一个模型总是依赖另一个模型时,我应该有两个控制器吗?

时间:2014-01-08 03:19:43

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

我还会为项目模型设置一个控制器。如果您考虑在RESTful操作中,那么您可以在调用/ projects / 1(或其他具有url追加/用户/ user / {ID_user} / projects / 1的操作)的内容中调用以获取ID为1的项目处理该请求检查用户权限的操作。例如,询问/ projects将处理调用以获取所有用户的项目。

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