我正在构建一个简单的rails应用程序,使用户能够上传一些图像。 现在我需要一个简单的控制器来返回图像的相关记录的网址,它们具有相同的id_attivita。 为此,我在控制器中创建一个函数,并在routes.rb文件中启用它。 我的问题是关于使用paperclip提供的image.url的属性valure响应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
端
它有效,但只返回第一条记录的网址而不是其他四条记录的网址... 我该怎么办?
答案 0 :(得分:1)
将以下gem添加到您的Gemfile
gem 'active_model_serializers'
然后使用bundle
安装它bundle install
您可以按如下方式生成序列化程序
rails g serializer photo_attivitum
它将在
中创建Serializer类文件# 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
答案 1 :(得分:0)
不确定你想做什么?在json中显示所有图片网址?
urls = @photo_attivitum.pluck('image_url')
format.html { render :json => urls}