Spree Commerce 如何从代码上传产品图片

Spree Commerce How to upload picture of a product from code

我想通过代码上传产品主变量的图片。我可以使用

创建一个简单的产品
product = Spree::Product.new
product.name = something
product.available_on = Time.now
product.description = something
product.tax_category_id = 1
.......
.......
product.save

但是当我尝试使用资产中的图片上传产品图片时,出现找不到路径的错误 我遵循了 spree 文档,其中说我可以使用

创建图像
img = Spree::Image.create(:attachment => File.open(path), :viewable => product.master)

但是当我输入 image_url "image name" 代替路径时。它给出了一个错误 /assets/images/imagename 没有这样的文件或目录

如果我遗漏了一些非常基本的东西,请告诉我

谢谢

您应该手动构建路径,而不是使用 image_url 助手:

path = Rails.root + 'app/assets/images' + 'my_image_name.png'
Spree::Image.create(:attachment => File.open(path), :viewable => product.master)