2012-04-11 52 views
0

我已經把一個圖來幫助解釋問題設置:http://i.imgur.com/ZnN1X.pngHAS_MANY: - 通過Rails 3的一個額外的ID在加盟模式

基本上,我的「新員工」的形式,我目前有一個用於員工姓名的輸入字段,以及一個列出所有公司的選擇框。如果我選擇一家公司,並打出去,它創造了「就業」的新紀錄。到現在爲止還挺好。

我的問題是,在選擇公司時,還需要在「就業」模式中設置類型,該模式鏈接到「就業類型」模型。理想情況下,我可以有兩種不同類型的工作 - 但都列出了相同的公司。

在此先感謝,任何幫助將不勝感激!

回答

1

不知道我完全理解你的問題,但我會對它進行一次嘗試。

員工型號:

has_many :employments, :dependent => :destroy 
has_many :companies; :through=>employments 
has_many :employment_types, :through=>employments 

公司型號:

has_many :employments 
has_many :employees; :through=>employments 
has_many :employment_types, :through=>employments 

就業類型型號:

has_many :employments 
has_many :companies; :through=>employments 
has_many :employees; :through=>employments 

就業型號:

belongs_to :employee 
belongs_to :company 
belongs_to :employment_type 

查看代碼:

<%= form_for @employee do |f| %> 
    <%= f.text_field :name %> 
    <% 2.times do %> 
    <%= f.fields_for :employments, @employee.employments.build do |employment_fields| %> 
     <%= f.select :company_id, options_from_collection_for_select(Company.all, 'id', 'name') %> 
     <%= f.select :employment_type_id, options_from_collection_for_select(EmploymentType.all, 'id', 'name') %> 
    <% end %> 
    <% end %> 
<% end %> 

在你的圖你有ID字段非標準(MODEL_ID),軌道通常更喜歡這些僅僅是ID。但是你可以在加入這每個模型騎默認的主鍵:

set_primary_key <symbol representing primary key> 
+0

感謝您的幫助,我設置我的關係,因爲你描述的,因爲它的主要工作 - 雖然當我提交表單,它將在「就業」而不是1中創建2條新記錄。一條既有員工ID又有公司ID,另一條有員工ID和僱傭類型ID。有沒有辦法將這3個記錄保存在同一個新記錄中? – Kobius 2012-04-11 16:43:42

+1

您可以將代碼發佈到您的創建方法以及請求中的參數散列副本嗎? – 2012-04-11 16:48:52

+0

我沒有改變默認的創建方法: – Kobius 2012-04-11 16:55:10