J'ai modèles comme ceci:Comment définir un champ dans le modèle comme étant en lecture seule lorsqu'une condition est remplie?
class Person
has_many :phones
...
end
class Phone
belongs_to :person
end
Je veux interdire de changer les téléphones associés à une personne quand une condition est remplie. Le champ Interdit est défini sur disabled
sous forme html. Lorsque j'ai ajouté une validation personnalisée pour le vérifier, cela provoquait une erreur de sauvegarde même lorsque le téléphone ne change pas. Je pense qu'il est parce qu'un hachage avec des attributs est passé à
@person.update_attributes(params[:person])
et il y a des données avec le numéro de téléphone (parce que la forme comprend des champs pour le téléphone). Comment mettre à jour seulement les attributs qui ont changé? Ou comment créer une validation qui ignore enregistre quand un champ ne change pas? Ou peut-être que je fais quelque chose de mal?
Merci! Le problème avec les callbacks est qu'il ne montre pas d'erreurs même quand je les ajoute à error.add_to_base – klew