验证仅标记给定数量的条目

时间:2009-09-24 21:33:42

标签: ruby-on-rails validation

我真的很擅长铁轨。我还没有真正编写任何自定义验证方法,我想知道是否存在这种方法,或者我是否应该编写自己的方法。

我有一个图像的布尔值,表示它是否有特色。如何在创建新条目和编辑时验证不超过给定数量的精选照片?如果我已经说过,10张照片被标记,并且用户试图标记另一张照片,我希望它抛出一个错误。感谢

2 个答案:

答案 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