我有一个使用rabl gem返回JSON的Rails API。以下是/show
模板,该模板也扩展到/index
模板。
object @deal
attributes :headline, :text, :image, :id, :created_at
child :vendor do
attributes :image_url, :id
end
Deal
和Vendor
都有图像,通过CarrierWave / Fog上传到S3。我在这里看到的问题是我返回的JSON包含了image
的额外deal
对象。像这样:
"deal":{"image":{"image":{"url":"httpxxxxxxxxxxxx"}}}
相比之下,供应商的JSON适当地返回:
"vendor":{"image_url":"httpxxxxxxxxxxx"}
我的上传者如下:
class DealUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
# vendor image uploader
class ImageUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
为什么我会收到这个多余的image
对象?
答案 0 :(得分:0)
尝试
object @deal
attributes :headline, :text, :image_url, :id, :created_at
child :vendor do
attributes :image_url, :id
end