我从Active Record采集中发现了一个奇怪的行为。检索多个记录,使用连接和采摘的列
我查询
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
但在命令行与勇气
["y", "y"]
和命令行用的find_by_sql
[#<Friend >, #<Friend >]
什么是错在我的代码,或者是问题的勇气和的find_by_sql
我该如何解决这个问题?
在此先感谢
它提供了一个错误错误的参数数目(2表示1) – santosh
您使用的是哪种版本的导轨?对不起,忘了采用rails进行修改4. Rails 3只接受1个参数。 –
我只使用rails3 – santosh