我从 Active Record Pluck 中发现了一个奇怪的行为。
我的查询是
Friend.joins('INNER JOIN users ON friends.friend_id = users.id').where("user_id=? AND (status=? or status=?)", 4,"true","").pluck("users.first_name, users.last_name")
就是和用户的朋友一起加入,获取用户的名字和姓氏
生成的 SQL 命令是
SELECT users.first_name, users.last_name FROM "friends" INNER JOIN users ON friends.friend_id = users.id WHERE (user_id=4 AND (status='true' or status=''))
如果我在 sqlite 浏览器工具上运行上述命令
我得到了类似的回应
first_name last_name
user4 y
user5 y
但是从命令行使用 pluck
["y", "y"]
和 find_by_sql 的命令行
[#<Friend >, #<Friend >]
我的代码有什么问题,还是 pluck 和 find_by_sql 有问题
我该如何解决这个问题?
提前致谢