Rails 用回形针响应 image.url 多个网址

Rails respond with paperclip image.url multple urls

我正在构建一个简单的 rails 应用程序,使用户能够上传一些图像。 现在我需要一个简单的控制器,returns 相关记录的图像 url 具有相同的 id_attivita。 为此,我在控制器中创建了一个函数并在 routes.rb 文件中启用它。 我的问题是关于如何使用回形针提供的 image.url 属性值响应 http 请求?

def getattached
  @photo_attivitum = PhotoAttivitum.where(id_attivita: params[:id_attivita])


 respond_to do |format|

 @photo_attivitum.each do |p|
    format.html { render :json => p.image.url}
  end
end

结束

它有效,但它 returns 只有第一条记录的 url 而不是其他四个记录的 url... 我该怎么办?

将以下 gem 添加到您的 Gemfile

gem 'active_model_serializers'

然后使用 bundle 安装它

bundle install

你可以生成一个序列化器如下

rails g serializer photo_attivitum

它将在

中创建序列化程序 class 文件
# app/serializers/photo_attivitum_serializer.rb

class PhotoAttivitumSerializer < ActiveModel::Serializer
   attributes :id, :image_url

   def image_url
     object.image.url
   end 
end

在控制器中

def getattached
  @photo_attivitum = PhotoAttivitum.where(id_attivita: 
   params[:id_attivita])


  render json: @photo_attivitum
end

不确定你想做什么?显示 json?

中的所有图片网址
    urls = @photo_attivitum.pluck('image_url')
    format.html { render :json => urls}