rails 3 валидация уникальности по нескольким атрибутам - PullRequest
173 голосов
/ 18 июля 2010

Я использую Rails 3.0.0.beta4

Я хочу добавить проверку уникальности по двум атрибутам, это означает, что моя модель верна, если пара 'recorded_at' и 'zipcode' уникальна.

Синтаксис одного атрибута здесь

validates :zipcode, :uniqueness => true

спасибо

Ответы [ 3 ]

322 голосов
/ 18 июля 2010

В Rails 2 я бы написал:

validates_uniqueness_of :zipcode, :scope => :recorded_at

В Rails 3:

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

Для нескольких атрибутов:

validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}
93 голосов
/ 13 августа 2012

Параметры нескольких областей действия:

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

Это должно ответить на вопрос Грега.

4 голосов
/ 07 августа 2017

Не работает для меня, нужно поставить объем в множественное число

validates_uniqueness_of: teacher_id,: scope s => [: semester_id, : Class_id]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...