我在rails中有一个产品型号has_many:照片。我想添加一些验证,确保您无法在不添加照片的情况下创建产品。我尝试在照片模型上添加validates_attachment_presence:image,但产品型号仍然没有照片保存。如何验证图像?此外,我希望用户添加至少5张照片
//product model
class Product < ActiveRecord::Base
has_many :photos
end
//photo model
class Photo < ActiveRecord::Base
belongs_to :product
validates_attachment_presence :image
end
答案 0 :(得分:0)
由于您没有发布表架构,我试图猜测它。
然后,要验证照片的presence/format
,您可以使用validation-helpers并检查最少数量的照片,您可以通过以下方式创建自定义验证器:
class Product < ActiveRecord::Base
has_many :photos
before_save :images_limit_min
private
def images_limit_min
return if self.photos.empty?
errors[:base] << "You must to upload at least 5 images" if self.photos.length < 5
end
end
class Photo < ActiveRecord::Base
belongs_to :product
validates :product_id, presence: true, format: { with: %r{ \.(png|jpg|jpeg)$ }i, message: "custom message" }
end
注意:结构可能不完全正确,但我希望你有办法。