сохранение вложенных атрибутов - PullRequest
0 голосов
/ 02 апреля 2010

У меня есть форма, которая имеет вложенную форму, например:

<%- 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"}}

На задачах_контроллер у меня есть:

@task.update_attributes(params[:task])

1 Ответ

0 голосов
/ 04 апреля 2010

Из примеров, приведенных на странице API NestedAttributes , я думаю, ваше обновление subscription_attributes должно выглядеть примерно так

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

Так что вам может потребоваться изменить форму, чтобы передать идентификаторы для обновления.

...