Подтвердить что ты не робот

ActiveRecord проверяет уникальность с областью действия, разрешающей Nil по области

У меня есть проверка, которая выглядит так:

class Book < ActiveRecord::Base

  belongs_to :author
  validates :name, uniqueness: { scope: :author_id }

end

Проблема заключается в том, что я хочу разрешить дубликаты имен, где идентификатор автора равен нулю. Есть ли способ сделать это, используя метод validates (а не пользовательскую проверку)?

4b9b3361

Ответ 2

Сделать условным:

  validates :name, uniqueness: { scope: :author_id }, if: :author_id?