我有一个旋转木马,它从附加的has_one(marketing_image)Active Storage文件上传方法拍摄图像。如果未上传营销图片,我希望轮播仍然显示。
很明显,轮播必须要有至少一个,但我想找到一种方法来跳过阵列中所有丢失的图像并仅显示已上传的图像。我正在使用Rails5。谢谢
我尝试了以下方法,但是它们隐藏了整个轮播,这不是我想要的。
除非(product.marketing_image!= nil?)
除非!product.marketing_image.blank?
型号
has_one_attached :product_image
has_one_attached :marketing_image
显示
<%= image_tag product.marketing_image.variant(combine_options: {resize: '1000x450^', gravity: 'center', extent: '1000x450^'}), class: 'img-fluid'%>
控制器
def index
@products = Product.all
@categories = Category.all
end
答案 0 :(得分:0)
我认为您正在寻找从选定产品中找到任何营销形象的方法?您可以创建一个范围来查找非空白的关联图像:
scope :with_marketing_images, -> { joins(:marketing_image).where.not(marketing_image.url: '') }
那么您的轮播可以是:
@marketing_images = @products.with_marketing_images