J'ai besoin de valider certains attributs UNIQUEMENT si elles ne sont pas vides.
Par exemple, l'utilisateur peut avoir un logo. Si nous essayons de le charger de validation devrait fonctionner. Si nous nous contentons de mettre à jour les données de l'utilisateur sans le logo, la validation doit être ignorée.
Maintenant, j'ai:
La forme a un choix de deux fichiers. Un logo, deuxième avatar. Deux de ces attributs est la part de l'Utilisateur modèle. Dans le modèle Utilisateur de un ont de validation:
validates_preference_of :logo_file_name, :message=>I18n.t("...")
validates_format_of :logo_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("...")
validates_preference_of :avatar_file_name, :message=>I18n.t("...")
validates_format_of :avatar_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("...")
Dans ce cas, si nous essayons de créer un nouvel Utilisateur sans choix du logo et de l'avatar, nous allons avoir des erreurs (la validation). J'ai essayé de changer de validation et d'ajouter ":sur => :mise à jour", comme ceci:
validates_preference_of :logo_file_name, :message=>I18n.t("..."), :on => :update
validates_format_of :logo_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("..."), :on => :update
validates_preference_of :avatar_file_name, :message=>I18n.t("..."), :on => :update
validates_format_of :avatar_file_name, :with=>/\.(jpeg|jpg|png|gif)$/i, :message=> I18n.t("..."), :on => :update
Maintenant, je peux créer un utilisateur sans choix du logo et de l'avatar, mais si j'essaie de modifier l'utilisateur et essayez de charger uniquement le logo - j'ai des erreurs de validation de l'avatar. Si je choisis de fichier pour l'avatar et le logo laissez vide - j'ai des erreurs de validation pour logo.
Comment je peux courir validation ony pour l'attribut que je veux changer?