【发布时间】:2023-03-24 21:48:01
【问题描述】:
我已经能够在通过 html 表单将图像上传到产品时设置 Alt 标签。
images = params[:images] || nil
if images
images.each do |image|
a = ShopifyAPI::Image.new
a.prefix_options = {:product_id => params[:product_id]}
a.metafields = [{:key => 'alt', :value => 'Cake', :value_type => "string", :namespace => "tags"}]
a.attachment = Base64.encode64(image.read)
a.filename = image.original_filename
a.save
end
else
.
.
.
但是在检索产品的图像时,我似乎无法弄清楚其中的 alt='Cake'。我尝试通过 ShopifyAPI 控制台搜索元字段,但没有任何乐趣。
如果能这么简单就好了……
a = ShopifyAPI::Image.where(alt: 'Cake', product_id: 245512249)
或者更好...
a = ShopifyAPI::Product.find(245512249)
b = a.images.select { |image| image.alt == 'Cake' }
或者...
a = ShopifyAPI::Product.find(245512249)
a.images.each do |image|
b << image if image.alt == 'Cake'
end
【问题讨论】:
-
当您通过一个 api 调用获得产品时,您将获得它的所有图像。然后迭代图像以查找您感兴趣的图像将是微不足道的。这比基于 alt 标签的内容搜索图像更简单、更可靠。
-
@DavidLazar 谢谢,但我也尝试过这种方式。问题是,图像没有 alt 属性。他们似乎依赖于链接表 Metafields - 我尝试查看存在哪些元字段,但没有与图像相关的元字段
-
是的.. alt 标签是一个元字段,因为这些资源是额外的......如果不搜索所有图像就无法搜索它们......你很幸运。无论如何,为逻辑使用 alt 标签可能是个坏主意。我会留下他们,因为他们的唯一目的是为 SEO 解释图片。
-
@DavidLazar 你知道'alt'标签元字段在哪里吗?奇怪的是,它们似乎不通过 Shop 元字段或 Product 元字段存在。你会如何建议我标记每张图片,然后进行搜索?
-
然后坚持使用文件名键并避免元字段的复杂性。您的代码将更易于维护,并且您消除了许多不必要的复杂性。为 SEO 保留 alt 标签。只是我的 0.02 完成了你想做的几十次......或更多
标签: ruby-on-rails ruby-on-rails-4 shopify activeresource