[英]Rails custom field in to_json
我有以下代码:
@locations = @list.all.to_json(:root => false,
:only => [:author,:lat,:long,:text])
它很棒,而且正是我想要的。 但是现在我想将每个条目的显示页面的URL添加到字段中。
就像这样:
[{
"author:"blabla",
"lat":blabla,
"long":blabla,
"text":"blabla",
"url":"url for show page"
}]
我尝试了合并选项,但它不添加任何内容或引发任何错误。
我该如何实现?
为什么不将此字段添加到模型(或任何称为@list.all
)中。 例如:
class MyModel
def url
"/url/to/page/#{id}"
end
end
并在控制器中只需将字段添加到only
数组
@locations = @list.all.to_json(:root => false,
:only => [:author,:lat,:long,:text,:url])
多亏了phts,我才能够找到解决方案:
我在模型中定义了方法
def url
"/url/to/page/#{id}"
end
在我添加的选项中:
:methods => :url
而且有效。
在to_json之后有一个数组,因此没有#merge
:
@locations = @list.all.to_json(:root => false, :only => [:author,:lat,:long,:text]).collect do |l|
l.merge( {text: 'mytext',url: 'myurl'} )
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.