Rails 使用回形针 image.url 多个 URL 进行响应



我正在构建一个简单的rails应用程序,用户可以在其中上传一些图像。现在我需要一个简单的控制器来返回具有相同id_attivita的相关记录的图像 URL。为此,我在控制器中创建了一个函数,并在 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
  end

它可以工作,但它只返回第一条记录的 URL,而不是其他四条记录的 URL......我该怎么做?

将以下 gem 添加到您的 Gemfile

gem 'active_model_serializers'

然后使用捆绑包安装它

bundle install

您可以按如下方式生成序列化程序

rails g serializer photo_attivitum

它将在 中创建序列化程序类文件

# 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}

最新更新