ruby-on-rails 如何使用Active Storage和jbuilder上传多个图像而不是一个图像?

wixjitnu  于 2023-03-24  发布在  Ruby
关注(0)|答案(1)|浏览(132)

这是我目前在Vision模型中的内容:

has_one_attached :image
    belongs_to :user

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

在我的Vision控制器中:

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

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

和in _vision.json.jbuilder:

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

json.image_url  polymorphic_url(vision.image)

我正在使用Amazon S3进行图像存储。如何更改代码以上传多个图像文件?
另外请记住,我的数据库中有现有数据,我将为每个Vision获取一个图像的图像URL。如何在不影响现有数据库的情况下进行更改?
先谢谢你🙏🏼

hm2xizp9

hm2xizp91#

你需要在你的模型中指定has_many_attached,你的控制器需要准备好接收一个图像数组。类似这样:

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

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

相关问题