2011-07-26 11 views
0

私は実際にこの問題を解決することに問題があります。私はモデルappointmentとモデルappointment_blockを持っています。 appointment_blocksテーブルは、開始時刻と終了時刻をdatetimeとして保存します。 split_time_blockというメソッドを使用しています。これは15分のパケットでtimerangeを分割し、文字列の配列に返します。これは正常に動作します。私は選択ボタンで異なる時間を選択することができます。 appointmentsテーブルは、appointment_block_idを参照します。私のフォームでは、私の新しい予定表エントリにblock_idを送信したいと思います。私はこの列にnullのエントリしか得ていません。2つのオブジェクトでform/formtasticを使用する際の問題

= semantic_form_for(@appointment) do |f| 
    -f.inputs do 

    [email protected]_blocks.each do |form| 
     =f.input :date, ,:as => :select, :collection => form.split_time_block 

    = f.input :category, :collection => Category.all, :as => :select 
    = f.input :memo 

    - f.buttons do 
    = f.commit_button 

私appointments_controllerは含まれています。アドバイスのため

@appointment = Appointment.new 
@appointment_blocks = AppointmentBlock.all 

Thxを!

答えて

1

アポイントとアポイントメントブロックは、(あなたが発見したように)あなたのフォームに意味のある方法で結びついていません。

あなたのモデル(複数可)にセットaccepts_nested_attributes_for持っていると仮定すると:

semantic_form_for(@appointment) do |f| 
    f.inputs do 

    f.semantic_fields_for :appointment_block do |ab_form| 
     ab_form.input :date, ,:as => :select, :collection => split_time_block 
    end 

    f.input :category, :collection => Category.all, :as => :select 
    f.input :memo 

    f.buttons do 
    f.commit_button 
end 

あなたのフォームは、これらの線に沿って何かを見なければなりません。次に、ビューがレンダリングされたら、マークアップを調べると、要素IDと名前に適切なネストが組み込まれているはずです。これはあなたのコントローラに送信されますと、あなたの関数を作成中に予定モデルオブジェクトをインスタンス化するとき、あなたはあなたのネストされたオブジェクトを見ることができるはずです。

@appointment = Appointment.new params[:appointment] 
flash[:notice] = @appointment.appointment_block.inspect <-- you should be able to see that the objects are nested properly, and in the db the id's line up properly. 

Formtastic documentation (look about halfway down for nested forms)

+0

ちょっとお返事のためのTHX!しかし、私のフォームの選択ボタンは表示されません:( – daniel

+0

ビューでそのようなCategory.allを使用することはできますか?インスタンス変数だけがビューからアクセスできると思ったので、コントローラには '@あなたのビューは ':collection => @categories、:as =>:select' –

+0

カテゴリセレクトは正常に動作していますsemantic_fields_forの日付選択が表示されません。 accepts_nested_attributes_for:appointment_block'を私の 'appointment'モデルに追加する – daniel

関連する問題