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