Ruby on rails 验证是否仅标记给定数量的条目

Ruby on rails 验证是否仅标记给定数量的条目,ruby-on-rails,validation,Ruby On Rails,Validation,我对rails真的很陌生。我还没有真正编写过任何自定义验证方法,我想知道是否有一种方法可以用于此目的,或者我是否应该编写自己的方法 我对图像有一个布尔值,表示它是否具有特征。在创建新条目和编辑时,我如何验证没有超过给定数量的特色照片?如果我已经标记了10张照片,并且一个用户试图标记另一张,我希望它抛出一个错误。谢谢班级照片10,则将_添加到_库(“键入错误消息”) 结束 结束 您可以阅读有关自定义验证的更多信息。class Photo10,则将_添加到_库(“键入错误消息”) 结束 结束 您

我对rails真的很陌生。我还没有真正编写过任何自定义验证方法,我想知道是否有一种方法可以用于此目的,或者我是否应该编写自己的方法

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

班级照片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
验证:用户_标记 def用户_标记 错误。如果user.photos.count>10,则将_添加到_库(“键入错误消息”) 结束 结束 您可以阅读有关自定义验证的更多信息。

class Photo10,则将_添加到_库(“键入错误消息”)
结束
结束

您可以阅读有关自定义验证的更多信息。

只是对khelli答案的一个调整。命名的_范围将使它更干净

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
class-Photo{:特征=>true}
验证:用户_标记
def用户_标记
错误。如果Photo.featured.count>10&&self.featured\u发生更改,请将\u添加到\u库(“键入错误消息”)?
结束
结束

你变了吗?检查是为了确保用户试图为该图像添加功能,而该图像还不是功能图像。

只是对khelli答案的一个调整。命名的_范围将使它更干净

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
class-Photo{:特征=>true}
验证:用户_标记
def用户_标记
错误。如果Photo.featured.count>10&&self.featured\u发生更改,请将\u添加到\u库(“键入错误消息”)?
结束
结束

你变了吗?检查是为了确保用户试图展示此图像,但它还不是特色图像。

这有一个缺陷,如果我已经有10张特色照片,我当前无法创建任何新的特色照片。我需要检查一下,看看我们正在添加的那张照片是否没有特色,我想我认为这没问题,因为“&&self.featured_changed?”应该是真的。这其中有一个bug,如果我已经有10张特色照片,我目前无法创建任何新的特色照片。我需要检查一下,看看我们要添加的那一个是否没有特色,我想我认为这没问题,因为“&&self.featured_changed?”应该是吗