我有这段代码:
@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"
}]
我尝试过合并选项,但它不会添加任何内容或抛出任何错误。
我怎样才能做到这一点?
答案 0 :(得分:3)
为什么不将此字段添加到模型(或任何您称为@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])
答案 1 :(得分:1)
感谢phts,我得到了一个解决方案:
我在模型中定义了方法
def url
"/url/to/page/#{id}"
end
在我添加的选项中:
:methods => :url
它有效。
答案 2 :(得分:0)
你在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