2012-04-11 1 views
0

に設定するために余分なIDを持つ:基本的にhttp://i.imgur.com/ZnN1X.pngHAS_MANY:通じRailsの3 - 私は一緒に問題を説明するための図を入れている参加モデル

、私の「新入社員」フォームに、現在I従業員名の入力フィールドと、すべての会社をリストする選択ボックスがあります。私が会社を選択してヒットしたら、「雇用」の新しい記録を作成します。ここまでは順調ですね。

私の問題は、会社を選ぶときに、「雇用タイプ」モデルにリンクする「雇用」モデルでタイプを設定する必要があるということです。理想的には、私は2種類の雇用を持つことができますが、どちらも同じ会社をリストしています。

ありがとうございました。お手数をおかけしますようお願い申し上げます。

答えて

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

おかげで、それは主に働いているとあなたが説明してきたように、私はセットアップ私の関係をしました従業員IDと企業IDの両方があり、もう1つに従業員IDと雇用タイプIDがあります。これらの3つを同じ新しい記録にまとめる方法はありますか? – Kobius

+1

あなたはcreateメソッドとリクエストからのparamsハッシュのコピーにコードを投稿できますか? –

+0

私はデフォルトの作成方法を変更していません: – Kobius

関連する問題