繁体   English   中英

如何在rails中验证表单中的照片

[英]How do you validate photos in a form in 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

由于您没有发布表模式,我试图猜测它。

然后,要验证照片的presence/format ,您可以使用验证帮助程序并检查最小数量的照片,您可以通过以下方式创建自定义验证器:

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

注意:结构可能不完全正确,但我希望你有办法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM