单个模型的多个一对多关联
Multiple one to many association for a single model
我有四个模型:Interview、Interviewee、Interviewer 和 InterviewDate。
rails关联关系如下:
- 一个 InterviewDate 可以有多个采访(一对多)
- 一个受访者可以进行多次采访(一对多)
- 一个面试官可以有很多面试,一个面试可以有
许多面试官(多对多)
因此,如您所见,面试 模型中存在三个传入的 "Many" 关系。鉴于我需要在视图中执行以下任务,应该如何在 rails 中完成路由?
列出所有按采访日期分组的采访
用于创建采访的表格(其中还包括保存
将其他 3 个表的字段导入数据库)。
由于您要列出 面试 ,您的路线应该是默认路线 /interviews/
:
resources :interviews
并且您的创建表单应该使用 ActiveRecord's Nested Attributes。
根据表单的复杂程度,您可能希望使用 Cocoon gem,但这不是必需的。
如果你想列出采访,那么你必须从这样的事情开始:
resources :interviews
因为你可能会有很多关联,所以你需要使用这样的东西:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
还要检查其他资源,因为您必须使用嵌套 forms/attributes:https://www.sitepoint.com/master-many-to-many-associations-with-activerecord/
我有四个模型:Interview、Interviewee、Interviewer 和 InterviewDate。
rails关联关系如下:
- 一个 InterviewDate 可以有多个采访(一对多)
- 一个受访者可以进行多次采访(一对多)
- 一个面试官可以有很多面试,一个面试可以有 许多面试官(多对多)
因此,如您所见,面试 模型中存在三个传入的 "Many" 关系。鉴于我需要在视图中执行以下任务,应该如何在 rails 中完成路由?
列出所有按采访日期分组的采访
用于创建采访的表格(其中还包括保存 将其他 3 个表的字段导入数据库)。
由于您要列出 面试 ,您的路线应该是默认路线 /interviews/
:
resources :interviews
并且您的创建表单应该使用 ActiveRecord's Nested Attributes。
根据表单的复杂程度,您可能希望使用 Cocoon gem,但这不是必需的。
如果你想列出采访,那么你必须从这样的事情开始:
resources :interviews
因为你可能会有很多关联,所以你需要使用这样的东西:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
还要检查其他资源,因为您必须使用嵌套 forms/attributes:https://www.sitepoint.com/master-many-to-many-associations-with-activerecord/