0

次のようなネストされたフォームを持つフォームがあります。

<%- 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])
4

1 に答える 1

0

NestedAttributes api ページに記載されている例から、subscription_attributes更新は次のようになるはずだと思います

"subscription_attributes" => [ {"id" => "11", "workhours"=>"20"}, {"id" => "12", "workhours"=>"303"}, {"id" => "9", "workhours"=>"120"}, {"id" => "10", "workhours"=>"10"} ]

そのため、更新の ID を渡すためにフォームを変更する必要がある場合があります。

于 2010-04-03T20:02:32.143 に答える