validationhas_and_belongs_to_many中的至少一个
我有一个模型:
has_and_belongs_to_many :users
如何validation模型在模型中至少有一个用户? 我试过了:
validates_presence_of :users
但这似乎没有给我我想要的东西……
我会写自定义validation:
validate :has_users? def has_users? # rails 2: errors.add_to_base "Model must have some users." if self.users.blank? end
那样做就是这样。
注意在rails 3+中你必须使用:
# rails 3+ errors.add :base, "Model must have some users." if self.users.blank?
在rails 4+中有一个内置的快捷方式,所以你可以简单地做:
validates :users, presence: true
在rails 4中你可以做到
validates :users, presence: true
在Rails 3.2.x中:
validate :has_users? def has_users? errors.add(:base, 'Error message') if self.users.blank? end
Josh Susser写了一个插件 ,它添加了一个validates_existence_of
方法,可以完成你想要的任务。 它确保外键引用存在的记录。
尝试:
validates :users, :length => { :minimum => 1 }