例:a Person
モデルaccepts_nested_attributes_for
a Pets
モデルの例は、hereです。 form_for(@person)
をネストされたfields_for :pets
で送信すると、PeoplesControllerのupdateメソッドがヒットします。保存に失敗した場合、つまりペットの名前がpresence: true
の検証に失敗したため、ActiveModel :: Dirtyを使用してペットインスタンスに加えられた変更を復元することができます。そのため、 のフォームに変更を復元しますか?私はネストされたフォームの入力が、保存前と空白ではないペットの値を保持するように、これを行いたいと思います。Nails属性を持つRailsコントローラでrestore_attributesを使用するにはどうすればよいですか?
例:
def update
@person = Person.find(params[:id])
respond_to do |format|
if @person.update_attributes(person_params)
format.html { redirect_to persons_path }
else
# @person.restore_attributes works for restoring the @person
# input values. I would like to do something like
# @person.pet.restore_attributes
format.html { render :edit }
end
end
end