2012-04-27 9 views
0

単純なhas_many関係を作成し、フォームで更新しようとしています。 ご協力いただきありがとうございます。選択フォームでHas_manyを見つけられない

モデル

class Position < ActiveRecord::Base 
    #position attributes 
    has_many :educations, :foreign_key => "position_id" 


class Education < ActiveRecord::Base 
    belongs_to :position 

    EDUCATION_CHOICES = ([["Undergrad", "0"],["Master", 1],["PHD", 2]]) 

教育データモデルは、PK(自動)、position_id、education_value、およびタイムスタンプを持っています。 education_valueはEDUCATION_CHOICES

からの値を格納することを意味する
 
startupfeeder_dev=# select * from educations; 
id | position_id | education_value |   created_at   |   updated_at   
----+-------------+-----------------+----------------------------+---------------------------- 
    3 |   11 | 1    | 2012-04-27 08:26:28.077517 | 2012-04-27 16:27:50.330082 
    1 |   12 | 1    | 2012-04-27 00:40:22.868336 | 2012-04-27 16:30:07.123653 
    2 |   12 | 2    | 2012-04-27 00:45:06.613306 | 2012-04-27 16:30:07.127601 
(3 rows) 

フォーム:

<%= f.select(:education_ids, Education::EDUCATION_CHOICES,{ :prompt => "Please select"}, 
    { :multiple => true, :size => 5 }) %> 

位置制御:

@position = Position.new(params[:position]) 

標準、まだ何も添加します。

私はいくつかのデータを手作業で追加しました。

ただし、更新と作成が正しくマッピングされていません。

これは私が私のログに取得されるものです:

Processing by PositionsController#create as HTML 

パラメータ:{ "位置" => { "タイトル" => "test13"、 "education_ids" => [ ""、 "1" "authenticate_token" => "XZRsnWTKkpprCOfmekOuXdPFKbZea1bfckCsLgG3/go ="、 "utf8" => "\ 342 \ 234 \ 223"、 "description" => "test13"} "} 教育負荷(0.9ms)SELECT"教育 "。*"教育 "から"教育 "、" ID "IN(1、2)

私の問題は私が所持しているf.select :education_ids、それはeducation_valuesにマップする必要があります。

+0

編集したフォームコードにmutli-select –

答えて

0

特定のエラーは表示されません。 :foreign_key => "position_id"でforeign_keyを定義する必要はありませんが、害はありません。あなたのフォームに選択ボックスが1つしかない場合は、ログに複数のID("education_ids"=>["", "1", "2"])を持つことができますか? 1つの「位置」に対して複数の「教育」を割り当てたい場合は、updating through checkboxesの鉄道跡をチェックしてください。 rails form helpersについてのガイドは、あまりにも有益なヒントを提供するかもしれません。アレイ["", "1", "2"]に渡された最初のIDが空です。これが問題を引き起こす可能性があります。

+0

が含まれています。最近マルチオプションをコードに追加し、貼り付けたコードを更新しませんでした。 –

関連する問題