Как сделать так, чтобы поисковая логическая область с именем возвращала DISTINCT (без дубликатов?) - PullRequest
3 голосов
/ 05 октября 2010

У меня есть searchlogic, который ищет not_null в ассоциации, которая может встречаться много раз, но я хочу отобразить только один экземпляр UNIQUE / DISTINCT объекта:

Company.contact_emails_id_not_null

Мне нужна только одна компания, независимо от того, сколько контактных сообщений связано с этой компанией: через =>: контакты

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Принимая рельсы 3:

Company.contact_emails_id_not_null.select("distinct name_of_your_field")

Если рельсы 2.3.x (пожалуйста, прости меня, если это окажется ложным, я не уверен)

Company.contact_emails_id_not_null.find(:all, :select => "distinct name_of_your_field")

name_of_your_field может также * включать все поля.

Дайте мне знать, если это поможет.

1 голос
/ 18 апреля 2012

В Rails 2.3.11 это работало для меня ...

@vendor_search = Vendor.searchlogic
@vendors = @vendor_search.paginate({
                                   :page => page,
                                   :per_page => 32,
                                   :order => 'name',
                                   :select => 'DISTINCT vendors.*'
                               })

Там есть дополнительная информация о конкретном проекте, но важная часть это ...

:select => 'DISTINCT vendors.*'
...