Rails: vérification des champs modifiés
Tout d'abord, j'ai généré échafaudage appelé "élément"
Je voudrais vérifier les champs de l'élément sont modifiés. et j'ai essayé deux tentatives, ceux n'êtes pas travailler tho.
Première Tentative!
def edit
@item = Item.find(params[:id])
@item_before_update = @item.dup
end
def update
@item = Item.find(params[:id])
# compare @item_before_update and @item here, but @item_before_update is NIL !!!
end
Deuxième Tentative!
J'ai regardé pour la façon de transmettre les données à partir de l'affichage de contrôleur et je ne pouvais pas.
modifier.html.erb
<% @item_before_update = @item.dup %> # I thought @item_before_update can be read in update method of item controller. But NO.
<% params[:item_before_update] = @item.dup %> # And I also thought params[:item_before_update] can be read in update mothod of item controller. But AGAIN NO
<% form_for(@item) do |f| %>
# omitted
<% end %>
S'il vous plaît laissez-moi savoir comment résoudre ce problème 🙁
source d'informationauteur Hongseok Yoon
Vous devez vous connecter pour publier un commentaire.
Les attributs qui ont des changements qui n'ont pas été conservées répondra fidèle à
changed?
Vous pouvez obtenir un tableau d'attributs modifiés en utilisant
changed
Pour votre
#update
action, vous devez utiliserattributes=
de changer l'objet, vous pouvez utiliserchanged
etchanged?
avant de persistance: