如何使用 Active storage 和 jbuilder 上传多个图像而不是 1 个图像?

How can I upload multiple images using Active storage and jbuilder instead of 1 image?

提问人:Ozge Cokyasar 提问时间:7/18/2020 更新时间:3/23/2023 访问量:1602

问:

这是我目前在我的视觉模型中拥有的:

    has_one_attached :image
    belongs_to :user

    def featured_image_url
        if self.image.attachment
          self.image.attachment.service_url
        end
      end
end

在我的视觉控制器中:

    def create
        @vision = current_user&.visions.create(vision_params)
        render :create, status: :created
    end


    def vision_params
        params.permit(:description, :image)
    end

在 _vision.json.jbuilder 中:

json.call(
    vision,
    :id,
    :description,
    :created_at,
    :updated_at
)

json.image_url  polymorphic_url(vision.image)

我正在使用 Amazon S3 进行图像存储。如何更改我的代码以便能够上传多个图像文件?

另请记住,我的数据库中有现有数据,我从中获取每个视觉单个图像的图像 URL。如何在不影响现有数据库的情况下进行更改?

先🙏🏼谢谢你

Ruby-on-Rails 宝石 Ruby-on-Rails-3 Ruby-on-Rails-4 Rails-ActiveStorage

评论


答:

-1赞 Rafael Gomes Francisco 7/18/2020 #1

您需要在模型中指定,并且控制器需要准备好接收图像数组。像这样的东西:has_many_attached

def vision_params
  params.permit(:description, images: [])
end

请参阅文档:https://edgeguides.rubyonrails.org/active_storage_overview.html#has-many-attached

评论

0赞 Rafael Gomes Francisco 7/19/2020
@OzgeCokyasar在您的问题上添加错误详细信息。这种方法(如文档)将是正确的方法。