enfant emboîtées met à jour que si les changements de parents
-
21-09-2019 - |
Question
Dans cette vidéo (10 sec) vous pouvez voir que l'attribut imbriqué est mis à jour que si elle est modèle parent est modifié.
Utilisation de rails 3.0.0.beta et le projet complet est sur github.
Résumé des modèles et forme:
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
La solution
EDIT2: Le même code fonctionne parfaitement dans Rails 2.3.5. Il semble être un bug dans la version bêta.
EDIT: J'ai écrit un essai dans mon application pour simuler cela. Voici le résultat.
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
Il fonctionne sans erreur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow