Ransack пользовательская сортировка не работает - PullRequest
0 голосов
/ 05 октября 2018

Я не могу создать собственную сортировку для поиска (по объему).Пытался сделать, как говорится в учебнике, но он не увенчался успехом.

У меня есть следующий код в моей модели.

scope :sort_by_custom_name_asc, -> { order('"core_people"."phone" ASC') }

Доказательства того, что область действия работает, сортировка по телефону в Ransack работает, но custom_nameсортировать не надо.

Core::Person.ransack(s: 'custom_name asc').result.to_sql
#=> "SELECT \"core_people\".* FROM \"core_people\""

Core::Person.ransack(s: 'phone asc').result.to_sql
#=> "SELECT \"core_people\".* FROM \"core_people\" ORDER BYY\"core_people\".\"phone\" ASC"

Core::Person.sort_by_custom_name_asc.to_sql
#=> "SELECT \"core_people\".* FROM \"core_people\" ORDER BY \"core_people\".\"phone\" ASC"

1 Ответ

0 голосов
/ 09 октября 2018

Я нашел другой способ сделать это.Теперь сортировка по custom_name доступна из Ransack.

ransacker :custom_name do |_|
  Arel::Nodes::SqlLiteral.new('"core_people"."phone"')
end
...