验证的至少一个has_and_belongs_to_many
问题描述:
我有一个模型:验证的至少一个has_and_belongs_to_many
has_and_belongs_to_many :users
如何验证,该模型在模型中的至少一个用户?我想:
validates_presence_of :users
但是,这似乎并没有给我我想要的......
答
我会写自定义的验证:
validate :has_users?
def has_users?
errors.add_to_base "Model must have some users." if self.users.blank?
end
这将这样做。
答
在Rails 3.2.x中:
validate :has_users?
def has_users?
errors.add(:base, 'Error message') if self.users.blank?
end
答
在轨道4,5你可以做
validates :users, presence: true
答
尝试:
validates :users, :length => { :minimum => 1 }
,看起来很有希望,但它没有工作: “无法验证:用户的存在,因为它不是belongs_to关联。”看起来它只适用于belongs_to ... – cmaughan 2009-06-04 12:44:23
这是正确的。关联的另一端是什么? – 2009-06-04 12:57:18