我真的很擅长铁轨。我还没有真正编写任何自定义验证方法,我想知道是否存在这种方法,或者我是否应该编写自己的方法。
我有一个图像的布尔值,表示它是否有特色。如何在创建新条目和编辑时验证不超过给定数量的精选照片?如果我已经说过,10张照片被标记,并且用户试图标记另一张照片,我希望它抛出一个错误。感谢
答案 0 :(得分:3)
只是对khelli的回答进行了调整。 named_scope会使它更清洁。
class Photo < ActiveRecord::Base
named_scope :featured, :conditions => { :featured => true }
validate :user_flaggings
def user_flaggings
errors.add_to_base("type your error msg") if Photo.featured.count > 10 && self.featured_changed?
end
end
featured_changed?检查是为了确保用户试图显示此图像,并且它还不是特色图像。
答案 1 :(得分:1)
class Photo < ActiveRecord::Base
validate :user_flaggings
def user_flaggings
errors.add_to_base("type your error msg") if user.photos.count > 10
end
end
您可以阅读有关自定义验证的更多信息here。