我有两个模型User
和Project
与one-to-many
关联。
Project
的实例(或集合)本身并不是“CRUD:ed”,它始终作为@user
的属性在上下文中。
Project
是否仍然拥有自己的Controller
,其每个操作都必须查找请求所针对的User
或者我应该在UsersController
中添加与项目相关的操作如:
class UsersController < ApplicationController
def show_projects
@user.projects
end
end
答案 0 :(得分:1)
我还会为项目模型设置一个控制器。如果您考虑在RESTful操作中,那么您可以在调用/ projects / 1(或其他具有url追加/用户/ user / {ID_user} / projects / 1的操作)的内容中调用以获取ID为1的项目处理该请求检查用户权限的操作。例如,询问/ projects将处理调用以获取所有用户的项目。
我认为尽管您的Project模型与您的用户模型有很强的依赖关系,但这并不意味着您无法对您的项目模型进行CRUD。我想在您的应用程序的某个地方,您将需要创建项目,这将是为项目模型放置CRUD操作的地方。也许我对此错了(关于你的应用程序的信息很少,很难进一步分析你的问题)但你的项目模型听起来像是一个类似用户模型的第一类实体。