Ruby 按列格式返回json

Ruby 按列格式返回json,ruby,ruby-on-rails-3,ruby-on-rails-4,Ruby,Ruby On Rails 3,Ruby On Rails 4,如何以列格式返回json 假设User表有3列(姓名、年龄、位置) 用户表 预期的JSON响应格式(按列) 如何在Rails上完成它?您可以执行以下操作: data = { name: User.pluck(:name), age: User.pluck(:age), location: User.pluck(:location) } render json: data data = { name: [], age: [], location: [] } User.

如何以列格式返回json

假设User表有3列
(姓名、年龄、位置)

用户表 预期的JSON响应格式(按列)


如何在Rails上完成它?

您可以执行以下操作:

data = {
  name: User.pluck(:name),
  age: User.pluck(:age),
  location: User.pluck(:location)
}

render json: data
data = {
  name: [],
  age: [],
  location: []
}

User.pluck(:name, :age, :location).each do |u|
  data[:name] << u[0]
  data[:age] << u[1]
  data[:location] << u[2]
end

render json: data
但请注意,这将查询数据库3次

编辑:如果要在一个查询中完成所有操作,请执行以下操作:

data = {
  name: User.pluck(:name),
  age: User.pluck(:age),
  location: User.pluck(:location)
}

render json: data
data = {
  name: [],
  age: [],
  location: []
}

User.pluck(:name, :age, :location).each do |u|
  data[:name] << u[0]
  data[:age] << u[1]
  data[:location] << u[2]
end

render json: data
数据={
姓名:[],
年龄:[],
地点:[]
}
User.pull(:name,:age,:location)|
数据[:名称]