Rails: modèle de mise à Jour de l'attribut, sans invoquer des rappels

J'ai un modèle Utilisateur qui a un :les crédits de l'attribut. Je veux un simple bouton qui va ajouter 5 pour l'utilisateur de crédits, à travers un parcours appelé "ajouter" et /utilisateurs/3/add voudrais ajouter 5 pour les crédits de l'utilisateur id = 3.

def add
    @user = User.find(params[:id])
    @user.credits += 5
    redirect_to root_path
end

Qui est la partie pertinente de mon contrôleur. Le problème est, je ne veux pas appeler @user.enregistrer parce que j'ai un before_save rappel qui re-crypte de l'utilisateur mot de passe basé sur l'heure UTC actuelle. Je veux juste simplement ajouter 5 à l'attribut et d'éviter le rappel, je n'ai jamais cru une chose si simple peut être si dur.

EDIT:

J'ai changé le rappel :before_create,
voici mon nouveau code de contrôleur (partie):

  def add
    @user = User.find(params[:id])
    @user.add_credits(5)
    @user.save
    flash[:success] = "Credits added!"
    redirect_to root_path
  end

et voici mon code dans le modèle:

 def add_credits(num)
    self.credits = num
 end

EDIT 2:

Ok c'était un problème de validation qui a fait les modifications dans la section "MODIFIER" pas de travail, mais j'aurais quand même aimer une réponse à la question initiale de la mise à jour sans les rappels!

  • J'ai fourni un lien avec une liste de méthodes qui ne déclenchent pas de rappels, et les deux Finbarr et j'ai suggéré à l'aide d'un conditionnel de rappel--quelles sont les autres solutions que vous recherchez?
InformationsquelleAutor Sam Stern | 2011-12-28