Rails渲染json时如何更改属性名称?

在我的控制器中,我有:

@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

您可以在Pakke单行方法执行此Pakke

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

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

重写as_json方法。 它由to_json使用以产生输出。 你可以这样做:

 def as_json options={} { name: navn, .... # other attributes you want to add to json } end