2017-07-29 74 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,但這不是必需的。