将图像从计算机上传到Shopify资产[rails]

问题描述 投票:0回答:1

我正在开发一个带有rails的Shopify App,它修改了商家商店的当前主题。

我正在尝试创建一个表单来从应用程序上传图像(来自您的计算机的本地文件)并将其直接保存在主题/资产中。

我试过这个:

控制器:

 def uploadImage
  if request.post?
    p = ShopifyAPI::Asset.new
    p.key = "assets/image.png"
    p.attach(params[:image])
    p.save
  end
 end

视图:

<form method="POST" action="uploadImage">
    <input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">     
       <label>Upload Image</label>
       <input type="file" name="image">            
    <button type="submit" name="button">Upload</button>
    </div>
</form>

但它不起作用,任何想法?

谢谢。

html ruby-on-rails forms image shopify-app
1个回答
0
投票

On the documentation page,没有POST端点,意思是,资产不能自己创建,它必须由主题拥有

该文档可能无法完成。可以比较变体,因为它们必须由产品拥有;对于这个特定的部分,他们确实记录了POST /admin/products/#{id}/variants.json(他们应该记录资产的POST /admin/themes/#{id}/assets.json

You have your solution in the code source,你需要指定主题id,所以这应该工作:

p = ShopifyAPI::Asset.new(key: "assets/image.png", theme_id: _your_theme_id)
p.attach(params[:image])
p.save

尚未尝试过,因此您可能需要先在本地保存文件,然后使用以下代码替换代码中的附加行:

p.attach(File.read('local/path/to/your/file.ext'))

see here

© www.soinside.com 2019 - 2024. All rights reserved.