首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails中的过滤器json呈现

Rails中的过滤器json呈现
EN

Stack Overflow用户
提问于 2011-03-23 01:47:19
回答 2查看 15.9K关注 0票数 18

如果我只想在JSON中返回:id和:name字段,那么最好的方法是什么

到目前为止,我有:

代码语言:javascript
复制
format.json { render :json => @contacts.map(&:attributes) , :only => ["id"]}

但是"name“属性在:only部分中不起作用,因为它不是数据库中的一列(它在模型中定义为名字+姓氏)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-23 01:54:00

可以将:methods传递给to_json / as_json

代码语言:javascript
复制
format.json do
  render :json => @contacts.map { |contact| contact.as_json(:only => :id, :methods => :name) }
end

或者,您也可以手动构建一个散列

代码语言:javascript
复制
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

票数 31
EN

Stack Overflow用户

发布于 2012-07-22 17:18:53

Rails 3支持以下过滤器选项。简单如初

代码语言:javascript
复制
respond_to do |format|
  format.json { render json: @contacts, :only => [:id, :name] }
end  
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5395620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档