2017-07-29 77 views
0

我有四个模型:Interview,Interviewee,Interviewer和InterviewDate。是单个模型的多个一对多关联

在轨协会方面的关系如下:

  1. 的InterviewDate可以有很多访谈(一对多)
  2. 受访者可以有很多访谈(一对多)
  3. 的访问者可以有许多访谈和访谈可以有许多访谈者(多对多)

因此,正如你可以看到有三个传入的“人y“关系采访模型。考虑到我需要在视图中执行以下任务,路由应该如何在rails中完成?

  1. 名单由InterviewDate

  2. 表格建立一个面试的分组所有的采访(其中也包括节省来自其他3个表 领域到数据库)。

+0

什么说反对通常的'/ interviews /'和'/ interviews/new'? – idmean

+0

InterviewDate是否真的需要成为一个单独的模型?这是我将模型作为面试的另一个属性,并且在给定日期获得所有面试时,您只需按日期搜索。 – struthersneil

+0

我只是为InterviewDate创建了另一个模型,因为我想减少它被包含在面试模型中时会导致的数据冗余。 –

回答

1

如果你想成为上市面试,那么你必须开始像这样:

resources :interviews 

既然你会有很多很多的关联是可能的,你将需要使用这样的:http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association

也检查这个其他资源,因为你将不得不使用嵌套窗体/属性:https://www.sitepoint.com/master-many-to-many-associations-with-activerecord/

+0

谢谢!我的另一个疑问是,我可以采用这种直接路线进行面试,还可以采用/ interviewee/1/interviews或/ interviewer/1/interviews等路线。 –

+0

你将不得不使用嵌套的资源,像这样的工作: '资源:面试做 资源:受访者 end' '资源:面试做 资源:面试官 end' – Carlos

+0

我将能够使用单个“面试”控制器保存面试官和面试者的嵌套属性? –

0

因为你是上市采访,你的路线应该是默认/interviews/

resources :interviews 

和你创造的形式应该利用ActiveRecord's Nested Attributes

根据表单的复杂程度,您可能需要使用Cocoon gem,但这不是必需的。