formato nidificato bambino aggiorna solo se cambia genitore
-
21-09-2019 - |
Domanda
In questo video (10 sec) si può vedere che l'attributo nidificato viene aggiornato solo se si tratta di modello di genitore è cambiato.
Utilizzando rotaie 3.0.0.beta e il progetto completo è su GitHub .
Sintesi di modelli e di forma:
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
Soluzione
EDIT2: Lo stesso codice funziona perfettamente in Rails 2.3.5. Sembra essere un bug nella versione beta.
Modifica ho scritto un test nella mia app per simulare questo. Ecco il risultato.
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
E 'eseguito senza errori.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow