2010-10-17 44 views
0

在我的用戶模型中,我有以下幾點:Rails3 - 查找(:所有)與聯接,如何包含來自JOIN的記錄?

@users = find(:all, :joins => :instance, :conditions => ['fname LIKE ? or lname LIKE ?', "%#{search}%", "%#{search}%"]) 

這裏的問題是,只有@users從用戶的表返回數據,而不是加入實例表。我用日誌中的SQL查詢證實了這一點。

SELECT "users".* FROM "users" INNER JOIN "instances" ON "instances"."id" = "users"."instance_id" WHERE (fname LIKE '%%' or lname LIKE '%%') 

如何讓導軌SELECT用戶*和instance.name?

感謝

回答

1

可以使用:選擇選項,並指定 「用戶*,instance.name。」?

+0

謝謝,但這似乎是這樣的黑客...是嗎?爲什麼要加入表格而不包括其他表格的結果?試圖瞭解Rails正在做什麼,爲什麼? – AnApprentice 2010-10-17 17:44:21

+0

我認爲這是一個黑客攻擊。通常,當你在rails中進行查詢時,你只會得到你所查詢的模型的結果,在你的用例中。你打算如何使用實例名稱?標準的方法是使用user.instance.name來取代它,而不是將它包含在你的select中。 – 2010-10-17 20:27:29

相關問題