отличный для сортировки с помощью ransack

я пытался отсортировать значения таблицы с помощью sort_link от Ransack. я нашел пример что действительно полезно. но, я думаю, у меня проблема с "отличным". я получил эту ошибку «Выражения ORDER-BY должны отображаться в списке SELECT; ОТЧЕТЛИВЫЙ'. мой код выглядит так:

q =user.joins(:buyer).order('users.name')
ransack = params["filter"]
@search = q.search(ransack)
@users = @search.result(:distinct=>true)

я что-то забыл? заранее спасибо!


person n4d    schedule 11.11.2013    source источник


Ответы (2)


В соответствии с этой проблемой вы можете сможете решить эту проблему с помощью запроса на объединение ActiveRecord или выберите запрос, чтобы добавить необходимые столбцы, например:

q = user.order('users.name')
ransack = params["filter"]
@search = q.search(ransack).
            result(:distinct=>true).
            joins(:buyer).
            includes(:buyer)
@users = @search.all
person Mikel Lindsaar    schedule 29.09.2015

У вас отличные как истинные. Ransack неправильно назвал отдельное значение с помощью Postgresql, поэтому вы получили эту ошибку. Если вы используете другую базу данных, вы, скорее всего, не будете.

Итак, если вы сделаете Different false, вы не получите эту ошибку. Если вы хотите знать, почему вам нужен отдельный, проверьте:

  http://www.w3schools.com/sql/sql_distinct.asp

Я пытаюсь найти способ включить отдельные, если мне это нужно. когда я узнаю, я отредактирую этот ответ.

person Lesly Revenge    schedule 12.12.2013