Rails 如何在渲染 json 时更改属性名称? [英] Rails how to change attribute name when rendering json?

查看:31
本文介绍了Rails 如何在渲染 json 时更改属性名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的控制器中,我有:

In my controller I have:

@pakkes = Pakke.where("navn like ?", "%#{params[:q]}%")

respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @pakkes }
  format.json { render :json => @pakkes.map(&:attributes) }
end

如何在渲染 JSON 时将属性 navn 更改为 name?

How do I change the attribute navn to name when rendering JSON?

推荐答案

您可以使用 Pakke 中的单行方法来做到这一点:

You can do this with a one-line method in Pakke:

def as_json(*args)
    super.tap { |hash| hash["name"] = hash.delete "navn" }
end

调用 super 会像往常一样生成 json 哈希,然后在它返回之前你会突然进入并更​​改navn"条目的键.

Calling super will generate json hash as usual, then before it's returned you'll swoop in and change the key of the "navn" entry.

这篇关于Rails 如何在渲染 json 时更改属性名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆