rails格式化自定义json输出

时间:2014-07-28 23:17:19

标签: ruby-on-rails ruby

如何格式化模型以便输出带有id和name字段的json文档?

因为我的模型有自定义字段名称而我使用的是tokeninput,它要求我将其输出到id和name。

任何想法?

3 个答案:

答案 0 :(得分:1)

您可能希望将唯一选项传递给to_json

:only => [:id, :name]

例如,如果您想获取User

的ID和名称
User.all.to_json :only => [:id, :name]

如果模型不包含OP描述的Id和Name。然后在查询数据库时使用自定义选择。

User.select('filed1 as id, field2 as name').all.to_json

答案 1 :(得分:1)

你有很多选择,你可以使用jbuilder,rabl。但我认为最简单的方法是使用Active Model Serializers。

我们假设您有型号名称用户

首先安装捆绑包,然后:

rails g serializer user

然后在app / serializers / user_serializer.rb:

class ArticleSerializer < ActiveModel::Serializer
  attributes :id, :name 
end

答案 2 :(得分:0)

也许在您的控制器中

require 'json'

# ...

def show_json
  user_obj_to_json = User.first.to_json
  render user_obj_to_json
end