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

时间:2018-03-02 18:25:14

标签: html ruby-on-rails forms image shopify-app

我正在开发一个带有rails的Shopify应用程序,用于修改商家商店的当前主题。

我尝试从应用创建表单上传图片(来自您计算机的本地文件),并直接将其保存在主题/资源中

我已尝试过这个:

控制器:

 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>

但它没有用,有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分: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