2015-12-23 3 views
0

Это может быть очень большой вопрос, но я пытаюсь разрешить только уникальные записи для таблицы «Избранное» с атрибутами «lightbulb_id» и "Студенческий билет." Я знаю о модели ValidationsRuby on Rails - проверка уникальной записи, а не только уникальные атрибуты записи

class Person < ActiveRecord::Base 
    validates_uniqueness_of :user_name 
end 

Но я хочу, чтобы проверить уникальность всей записи (так сочетание lightbulb_id и student_id). Таким образом, lightbulb_id и student_id могут быть дублированы (ученик может «любить» несколько lightbulb_id), и, следовательно, один и тот же student_id может появляться несколько раз в таблице «Избранное» с разными лампочками. Но конкретная комбинация не должна дублироваться (студент не может любить лампочку дважды)

Это может быть очень простой вопрос, любые предложения будут оценены. Благодарю.

ответ

1

Вы можете попробовать следующие правила проверки:

validates_uniqueness_of :student_id, scope: [:lightbulb_id] 
+1

подтверждает: lightbulb_id, уникальность: {объем:: student_id} Я попытался это и добавил уникальный индекс на столе Избранное и это, кажется, работает. Я не совсем уверен, как работает спецификация области. Проверяет ли он уникальность идентификатора student_id и атрибута, указанного в объёме? – anishasri