不知道我完全理解你的問題,但我會對它進行一次嘗試。
員工型號:
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>
感謝您的幫助,我設置我的關係,因爲你描述的,因爲它的主要工作 - 雖然當我提交表單,它將在「就業」而不是1中創建2條新記錄。一條既有員工ID又有公司ID,另一條有員工ID和僱傭類型ID。有沒有辦法將這3個記錄保存在同一個新記錄中? – Kobius 2012-04-11 16:43:42
您可以將代碼發佈到您的創建方法以及請求中的參數散列副本嗎? – 2012-04-11 16:48:52
我沒有改變默認的創建方法: – Kobius 2012-04-11 16:55:10