次のようなネストされたフォームを持つフォームがあります。
<%- for subscription in @task.subscriptions -%>
<%- semantic_fields_for "task[subscription_attributes][]", subscription do |subscription_form|%>
<%- subscription_form.inputs do -%>
<%= subscription_form.input :workhours, :label => subscription.user.full_name%>
<%- end -%>
<%- end -%>
<%- end -%>
そして、私が持っているタスクモデルでは:
accepts_nested_attributes_for :subscriptions
attr_accessible :mission_id, :statuscode_id, :name, :objectives, :start_at , :end_at, :hours, :testimony ,:subscriptions_attributes
フォーム (ビュー) では、勤務時間フィールドで正しい値を取得します。しかし、値を変更して送信ボタンを押しても、値は決して変更されません。理由がわかりません...
これがタスク属性に基づいて構築されていることがコンソールに表示されます。したがって、値はコントローラーに渡されます。
"subscription_attributes"=>{"11"=>{"workhours"=>"20"}, "12"=>{"workhours"=>"303"}, "9"=>{"workhours"=>"120"}, "10"=>{"workhours"=>"10"}}
私が持っているtasks_controllerで:
@task.update_attributes(params[:task])