У меня есть модель со столбцом active
, которая является логическим значением. Я хочу проверить уникальность всех вновь добавленных записей по company_id
, чтобы я мог добавить в таблицу столько записей, сколько я хочу с тем же company_id
, при условии, что для active
установлено значение false
. Для каждой company_id
.
должна быть только одна запись
active
.
Как бы мне написать это? Я уже пробовал:
validates :company_id, :uniqueness => { :scope => :active }
Но, похоже, это также подтверждает наличие уникальных комбинаций active
, являющихся false
(таких, что у меня никогда не может быть более двух company_id
в таблице с одинаковым статусом active
, независимо от того, что active
is) - приведенная выше проверка допускает две записи для company_id
, одну с active = false
, а другую с active = true
. Как только эти две записи введены, проверка блокирует все остальное.
Затем я попытался добавить это:
scope :active, where(:active => true)
Но это, похоже, совсем не изменило валидацию (та же проблема, что и выше).
Как я могу написать эту проверку, чтобы я мог добавить столько записей с одним и тем же company_id
, если active
ложно, и допускается только одна active = true
на company_id
?