46 votes

obtenir les validations du modèle

Comment cat j'obtiens la liste des validations définies dans le modèle

Exemple:

 class ModelName
  validates_presence_of :field_name
  validates_inclusion_of :sex, :in => %w(M F)
end

J'ai besoin de Hash comme :

 {:field_name => 'required', :sex => 'Must be in: M, F'}

107voto

Nicolas Blanco Points 4815

Vous n'avez pas besoin d'un plugin pour les besoins de base.

Vous pouvez le faire pour obtenir un hachage de tous les validateurs.

 ModelName.validators

Si vous souhaitez obtenir les validateurs pour un domaine spécifique :

 ModelName.validators_on(:attribute)

3voto

Jussi Hirvi Points 176

Ce code donne un tableau de champs obligatoires. Il doit être adaptable à vos besoins.

 @required_fields = []
ModelName.validators.each do |v|
  @required_fields << v.attributes.first if v.kind == :presence
end

1voto

vnbrs Points 1255

Si vous ajoutez des validations dynamiquement dans vos modèles, vous pouvez utiliser l'instance pour lister les validations :

 product = Product.new
product.singleton_class.validators_on(:price)
#=> [#<ActiveModel::Validations::PresenceValidaton>]

Testé dans Rails 5.2.

0voto

Chowlett Points 19889

On dirait qu'il n'y a pas de moyen natif de le faire, mais un rapide Google (pour "les rails reflètent les validations") fait apparaître ce plugin .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X