ruby-on-rails - 在Rails中过滤json渲染

标签 ruby-on-rails json ruby-on-rails-3

如果我只想返回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/

相关文章:

ruby-on-rails - Rails API : One Request, 多个 Controller 操作

ruby-on-rails - 在 Rails after_save 回调中,提交是否已完成并且 Sidekiq 作业是否可以访问更改

ruby-on-rails - 我应该把 key 放在我的 Rails 应用程序的什么地方?

javascript - 使用 JavaScript 从对象中删除空数组

ruby - HTTP 摘要 + Rspec

ruby-on-rails - Rails hide_field_tag 整数自动转换为字符串?

ruby-on-rails - 如何在 select_tag/options_from_collection_for_select 中设置 "selected"

php - 返回数组时,PHP 中的 json_decode 是否保证保留元素的顺序?

json - 所有对象的单个自定义反序列化器作为它们的 ID 或在 POST/PUT 期间嵌入整个对象

ruby-on-rails-3 - 处理请求 : invalid byte sequence in UTF-8 时出现意外错误