8
votes

Contexte de la validation des rails

J'ai besoin d'aide avec mon modèle Actionecord. J'ai des validations basées sur le contexte (MIS) à l'aide des options de contexte intégrées pour validations: xxx

mais à l'aide de mon modèle dans un accepte_netés_attributes_for: modèle et appelant parent.save échoue (la validation est appelée et renvoie false), des suggestions ou des solutions?


toujours pas de réponse? Pour expliquer davantage mon problème: j'ai un modèle appelé formulaire qui a de nombreux s. Les utilisateurs doivent voir des erreurs de validation sur Soumettre, mais le formulaire doit être enregistré de toute façon (avec et sans erreur). Il existe différents types de champ S, chacun avec des validations globales (pour assurer la cohérence de la base de données) et ses propres validations spécifiques définies par l'utilisateur (pour valider les données saisies par l'utilisateur). Donc, mon est un aspect comme celui-là: xxx

dans mon contrôleur: xxx

Est quelque chose de similaire possible dans les rails en utilisant la fonctionnalité intégrée? BTW Ce n'est pas mon code actuel, qui est assez compliqué. Mais j'espère que vous obtiendrez l'idée.


0 commentaires

4 Réponses :


0
votes

Changer has_netés_attributes_for: modèle à accepte_nedes_attributes_for: modèles .

J'espère que cela aide.

bonne chance.


2 commentaires

Non, désolé pour la faute de frappe. Je voulais dire, bien sûr accepte_netés_attributes_for ! Merci btw :)


Je pense que le contexte de validation : bar est faux, mais : on =>: créer ou : on =>: Mise à jour devrait être bien.



7
votes

Essayez des validations conditionnelles

class Customer 
  attr_accessor :managing 

  validates_presence_of :first_name
  validates_presence_of :last_name 

  with_options :unless => :managing do |o|
    o.validates_inclusion_of :city, :in=> ["San Diego","Rochester"]
    o.validates_length_of :biography, :minimum => 100 
  end
end

@customer.managing = true
@customer.attributes = params[:customer]
@customer.save


0 commentaires

5
votes

"possibilité de spécifier plusieurs contextes lors de la définition d'une validation" a été introduite dans Rails 4.1 - Vérifier Validation méthode: Description des options


0 commentaires

2
votes

uniquement pour les rails 5 +: strong>

Vous recherchez p> xxx pré>

pour valider ou enregistrer l'utilisation p>

model = YourModel.new

# Either
model.valid?(:custom_event)

# Or
model.save(context: :custom_event)


0 commentaires