Рельсы 3 проверки на уникальность по нескольким атрибутам
Я использую Rails 3.0.0.beta4
Я хочу добавить проверку на уникальность по двум атрибутам, это означает, что моя модель действительна, если пара 'recorded_at'
и 'zipcode'
уникальна.
В одном атрибуте присутствует синтаксис
validates :zipcode, :uniqueness => true
спасибо
Ответы
Ответ 1
В 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]}
Ответ 2
Параметры нескольких областей:
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
Это должно ответить на вопрос Грега.
Ответ 3
Не работает для меня, нужно добавить область в множественное число
validates_uniqueness_of: teacher_id,: scope s = > [: semester_id,: Class_id]