我從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