2010-09-29 86 views
0

聯繫我belongs_to status_contacts如何使用searchlogic搜索belongs_to關聯?

我只想要那些沒有賦值的聯繫人。

我安裝了searchlogic插件。

我想:

contacts = Contact.status_contact_null 

,並得到一個錯誤。

我該如何獲得關於如何使用searchlogic關聯的完整意義,以及如何將其用於此特定搜索?

回答

1
Contact.status_contact_id_is(nil) 

應生成SQL,看起來像這樣:

SELECT * FROM `contacts` WHERE (contacts.status_contact_id IS NULL) 

Searchlogic替代Ruby的nil對SQL的null

你可以用ne(不等於)

Contact.status_contact_id_ne(nil) 

上有github page for Searchlogic

+0

一堆很好的例子哦,我想,當我檢查了興田GitHub的頁面,它理解協會做反向?它有一個用戶和訂單的例子......這是怎麼樣的(與需要調用外鍵相比)? – Angela 2010-09-29 16:14:45

+0

它理解關聯,你可以通過鏈接範圍中的方法來看到關聯 - 例如。如果'status_contacts'有'name'列,'Contact.status_contact_name_is(「Fred」)'將起作用。但是,如果方法存在於模型本身(例如'status_contact_id'),它就會使用它,這是真正實現此查詢的唯一方法。你可以編寫你自己的命名範圍,使其更具可讀性,如果你喜歡 – zetetic 2010-09-29 17:29:10

+0

我看到...但不是status_contact的關聯?即使有這種關聯,它仍然需要外鍵?難以理解如何使用搜索邏輯 - 是唯一的例外嗎?按照定義,所有的協會都不會有外鍵嗎? – Angela 2010-09-29 22:38:10