我尝试渲染一个正确格式化的json:
render json: {photo: @photo.as_json(with_thumbs_url: true)}
在我的模型中,我必须这样做:
def as_json(options={})
if options[:with_thumbs_url].present?
Jbuilder.encode do |json|
json.(self, :id, :beschreibung, :date, :art)
json.thumbs self.photo_thumbs.map{|e| e.file.url(:medium)}
end
end
end
我的问题是像这样返回:
{photo: "{"id":288,"beschreibung":"Anfang","date" ...system/photos/6267/medium/136.webp?1413823129"]}"}
我不喜欢这个JSON,Json中的photo
呈现为字符串:
"{"id":288,"beschreibung":"
我希望不对其进行编码,例如:
{photo: {id: "288", beschreibung: "Anfang" ...
我会说问题是我的代码:encode
:
Jbuilder.encode do |json|
所以为了解决我的问题我尝试了:
Jbuilder.new do |json|
但后来我收到了错误:
render json: {photo: @photo.as_json(with_thumbs_url: true)}
wrong number of arguments (0 for 1..2)
我错了什么以及如何修复我的代码?感谢
答案 0 :(得分:0)
为了使其工作,我必须将我的代码更改为:
def as_json
Jbuilder.new do |json|
# your stuff
end.attributes!
end