【问题标题】:Rails respond with paperclip image.url multple urlsRails 以回形针 image.url 多个 url 响应
【发布时间】:2018-04-14 08:30:43
【问题描述】:

我正在构建一个简单的 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

结束

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

【问题讨论】:

    标签: ruby-on-rails image url controller paperclip


    【解决方案1】:

    将以下 gem 添加到您的 Gemfile 中

    gem 'active_model_serializers'
    

    然后使用 bundle 安装它

    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
    

    【讨论】:

    • 它会返回一个带有 id 和 img.url 属性的 json 吗?
    • 属性 :id, :image_url 添加到 PhotoAttivitumSerializer
    【解决方案2】:

    不确定你想做什么?以 json 格式显示所有图片 url?

        urls = @photo_attivitum.pluck('image_url')
        format.html { render :json => urls}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 2012-06-10
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多