如果我只想在JSON中返回:id和:name字段,那么最好的方法是什么
到目前为止,我有:
format.json { render :json => @contacts.map(&:attributes) , :only => ["id"]}
但是"name“属性在:only部分中不起作用,因为它不是数据库中的一列(它在模型中定义为名字+姓氏)
谢谢!
发布于 2011-03-23 01:54:00
可以将:methods
传递给to_json / as_json
format.json do
render :json => @contacts.map { |contact| contact.as_json(:only => :id, :methods => :name) }
end
或者,您也可以手动构建一个散列
format.json do
render :json => @contacts.map { |contact| {:id => contact.id, :name => contact.name} }
end
请参阅:http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-as_json
发布于 2012-07-22 17:18:53
Rails 3支持以下过滤器选项。简单如初
respond_to do |format|
format.json { render json: @contacts, :only => [:id, :name] }
end
https://stackoverflow.com/questions/5395620
复制相似问题