Rails comment définir une variable temporaire qui n'est pas un champ de base de données

Pour mon application, j'ai différents d'inscription de points d'entrée qui permettent de valider les choses différemment.

Donc, dans la principale de l'inscription, rien n'est obligatoire, sauf pour l'email et le mot de passe de domaine. Dans une autre inscription de terrain, beaucoup plus sont nécessaires. Ainsi, dans le modèle de l'utilisateur, j'ai

validate_presence_of :blah, :lah, :foo, :bah, :if => :flag_detected

def flag_detected
  !self.flag.nil?
end

Je veux mettre ce drapeau par le contrôleur. Cependant, cet indicateur n'est pas un champ de base de données. Je me demande simplement si c'est réalisable dans les Rails ou il ya quelque chose de mal avec la façon dont je pense à ce sujet? Si oui, quelle est la meilleure façon d'atteindre cet objectif? Merci.

"variables d'instance" (exposées via des accesseurs (par exemple, attr -- si nécessaire). C'est la question si c'est une "bonne pratique" de le faire dans un Modèle, précisément parce qu'ils sont pas de la persisté modèle. Cependant, dans un Contrôleur, pourquoi pas?
J'ai seulement besoin d'être une variable temporaire pour enregistrer appelé à partir du contrôleur. Lorsque j'ai mis @user.flag = true dans le contrôleur, je n'ai pas vraiment le voir dans le modèle.
J'ai donc besoin de définir un attr_accessor? Que faire si j'ai déjà attr_protected, est-il de toute façon autour de qui alors?
vous pouvez toujours écrire votre propre "action" de la méthode et de ne pas utiliser les propriétés: theModel.flag_for_followup (par exemple, ou tout ce qui est approprié). Ou, peut-être créer un objet distinct (ou seulement utiliser des variables dans le Contrôleur) et ajoutez pas non persistantes propriétés du modèle..
Salut @pst, est-il possible si vous pouvez élaborer un peu? Voulez-vous dire de créer ma propre méthode d'enregistrement afin que je puisse passer cette variable à travers?

OriginalL'auteur gtr32x | 2012-03-14