Уникальные результаты поиска в Rails - PullRequest
4 голосов
/ 08 апреля 2011

Я использую Metasearch Эрни Миллера в приложении rails 3 и столкнулся с проблемой.

В моей модели

class Prospect < ActiveRecord::Base
has_many :steps

В моем контроллере

@search=Prospect.search(params[:search])

На мой взгляд (форма поиска)

 <%= f.date_select :steps_updated_at_greater_than%>

Это работает так, чтоЯ получаю все перспективы, где шаги были обновлены с момента date_select.Моя проблема заключается в том, что если было несколько обновленных шагов, я получаю дубликаты в @search, которые мне не нужны, когда я иду к форматированию результатов поиска в представлении.

Мой вопрос: каков наилучший способ удаления дубликатов из @search?Или вообще запретить добавление дубликатов в @search?

Ответы [ 3 ]

2 голосов
/ 18 февраля 2013
@search = Prospect.search(params[:search])
@prospects = @search.relation.uniq
2 голосов
/ 08 апреля 2011
@search=Prospect.search(params[:search]).select('DISTINCT step_id')
1 голос
/ 08 апреля 2011

Вы хотите:

@search = Prospect.search(params[:search])

@search.relation.select("DISTINCT(step_id), prospects.*")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...