如何根据Alt标签查找产品图像?

时间:2014-03-20 15:19:51

标签: ruby-on-rails ruby-on-rails-4 shopify activeresource

我可以通过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控制台搜索Metafields,没有任何乐趣。


如果这很容易会很好......

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

1 个答案:

答案 0 :(得分:0)

根据Alt标签,无法调用产品图像; ShopifyAPI不允许使用它。


尽管如此,这是商业秘密......

只需将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 = 'Cake_'+image.original_filename
      a.save
 end
else
.
.
.

这样,您可以通过':src'属性中的字符串值'Cake_'过滤产品图像。

@product = ShopifyAPI::Product.find(params[:id])

@product.images.each do |image|
  if image.attributes[:src].include?('Cake_')
    .
    .
    .
  end
end

希望有所帮助!