我想将ActiveRecord查询映射为键值对
我希望以
的形式获得json_result
{ "16": "2017-10-16T17:04:51.000Z" }
但是下面的代码以
的形式提取结果{ "id": 16, "date": "2017-10-16T17:04:51.000Z" }
r.id: r.started_at
不起作用。
@results = Visit.all
json_results = {
data: @results.map do |r| {
id: r.id,
date: r.started_at
} end
}
如何在Rails中实现这一点,因为我在这方面遇到了一些麻烦。
答案 0 :(得分:3)
另一种方法是将pluck
与to_h
:
json_results = Visit.pluck(:id, :started_at).to_h
答案 1 :(得分:0)
试试这个:
json_results = {
data: @results.map do |r|
{ r.id => r.started_at }
end
}
示例:
puts ({4 => "foo"}.to_json)
# {"4":"foo"}