176 votes

rails 3 validation de l'unicité sur des attributs multiples

J'utilise Rails 3.0.0.beta4

Je veux ajouter une validation sur l'unicité de deux attributs, ce qui signifie que mon modèle est valide si le couple de 'recorded_at' y 'zipcode' est unique.

Sur un attribut, voici la syntaxe

validates :zipcode, :uniqueness => true

merci

328voto

Christian Lescuyer Points 8656

Dans Rails 2, j'aurais écrit :

validates_uniqueness_of :zipcode, :scope => :recorded_at

Dans Rails 3 :

validates :zipcode, :uniqueness => {:scope => :recorded_at}

Pour les attributs multiples :

validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}

94voto

Ray Points 836

Paramètres à portée multiple :

class TeacherSchedule < ActiveRecord::Base
  validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of

Cela devrait répondre à la question de Greg.

6voto

Jesus Points 752

Ne fonctionne pas pour moi, j'ai besoin de mettre champ d'application en pluriel

valide l'unicité de :teacher_id, :scope s \=> [:semester_id, :class_id]

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