2010-09-29 91 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