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

Утвердить хотя бы один элемент has_and_belongs_to_many

У меня есть модель с:

has_and_belongs_to_many :users

Как проверить, что модель имеет хотя бы одного пользователя в модели? Я пробовал:

validates_presence_of :users

Но это, кажется, не дает мне то, что я хочу...

4b9b3361

Ответ 1

Я бы написал специальную проверку:

validate :has_users?

def has_users?
  errors.add_to_base "Model must have some users." if self.users.blank?
end

Это сделает именно это.

Ответ 2

В рельсах 4 вы можете просто сделать

validates :users, presence: true

Ответ 3

В Rails 3.2.x:

validate :has_users?

def has_users?
  errors.add(:base, 'Error message') if self.users.blank?
end

Ответ 4

Джош Суссер написал плагин, который добавляет метод validates_existence_of, который делает то, что вы хотите. Это гарантирует, что внешний ключ ссылается на существующую запись.

Ответ 5

Try:

validates :users, :length => { :minimum => 1 }