如果我只想返回JSON中的:id和:name字段,什么是最好的方法?
到目前为止,我有:
format.json { render :json => @contacts.map(&:attributes) , :only => ["id"]}
但是“ name”属性在:only部分中不起作用,因为它不是数据库中的列(在模型中定义为名字+姓氏)
谢谢!
最佳答案
您可以将: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
关于ruby-on-rails - 在Rails中过滤json渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395620/