在控制器中,我需要创建一个返回的嵌套数组:
[[“first_name - last_name”,“id”]]
来自包含三列的人员表:first_name,last_name,id。
我有下面的查询,用' - '连接所有三个,但我只需要加入前两列。我怎么做到这一点?
Person.pluck("first_name", "last_name", "id").map{|e| e.join(' - ')}
答案 0 :(得分:1)
注意:这个答案是在答案被标记为[rails]并且没有提到Mongo时写的。
通常我建议在ActiveRecord查询中避免使用SQL文字,但这可以完成工作:
Person.pluck("concat(first_name, ' - ', last_name)", :id)
答案 1 :(得分:0)
如果您想要使用SQL文字路线,@ coreyward的答案就有效。您也可以将map
块更改为以下内容,这不是非常优雅但有效。
map{|e| [e[0..1].join(' - '), e[2]]}