繁体   English   中英

to_json中的Rails自定义字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM