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
How do I change the attribute navn
to name
when rendering JSON?
You can do this with a one-line method in Pakke
:
def as_json(*args)
super.tap { |hash| hash["name"] = hash.delete "navn" }
end
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.
Override the as_json method. It's used by to_json
in order to produce the output. You can do something like:
def as_json options={}
{
name: navn,
.... # other attributes you want to add to json
}
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With