Загрузить изображение с компьютера в активы Shopify [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 ответ
На странице документации нет POST
конечная точка, то есть ресурс не может быть создан сам по себе, он должен принадлежать теме
Документация может быть не полной по этому вопросу. Варианты можно сравнить, поскольку они должны принадлежать продукту; и для этой конкретной части они документируют POST /admin/products/#{id}/variants.json
(они должны были документировать POST /admin/themes/#{id}/assets.json
для активов)
У вас есть решение в исходном коде, вам нужно указать идентификатор темы, так что это должно работать:
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'))