Frage

In diesem Video (10 sec) können Sie sehen, dass das verschachtelte Attribut nur aktualisiert wird, wenn es Eltern Modell geändert wird.

Mit Schienen 3.0.0.beta und das vollständige Projekt ist auf Github .

Zusammenfassung von Modellen und Form:

class Project < ActiveRecord::Base
  has_many :tasks
  accepts_nested_attributes_for :tasks
end

class Task < ActiveRecord::Base
  belongs_to :project
  has_many :assignments
  accepts_nested_attributes_for :assignments
end

class Assignment < ActiveRecord::Base
  belongs_to :task
end


form_for(@project) do |f|

  Project: f.text_field :name

  f.fields_for :tasks do |task_form|
    Task: task_form.text_field :name

    task_form.fields_for :assignments do |assignment_form|
      Assignment: assignment_form.text_field :name
    end
  end

  f.submit
end
War es hilfreich?

Lösung

EDIT2: Der gleiche Code funktioniert perfekt in Rails 2.3.5. Es scheint ein Fehler in der Beta-Version.

EDIT: Ich schrieb einen Test in meiner app dies zu simulieren. Hier ist das Ergebnis.

  test "should update empresa" do
    addr = empresas(:ufba).address
    put_with users(:s_one), :update, :id => empresas(:ufba).to_param,
             :empresa => { :address_attributes => {:id => empresas(:ufba).address.to_param,
                                                   :city => "Feira de Santana"}}
    assert_not_nil assigns(:empresa)
    assert_not_same addr, assigns(:empresa).address, "Endereco nao foi atualizado"
    assert_redirected_to empresa_path(assigns(:empresa))
  end

Es läuft ohne Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top