Ransack 自定义排序不起作用

Ransack custom sorting not works

我无法为洗劫创建自定义排序(按范围)。试过按照教程说的做,但是没有成功。

我的模型中有下一个代码。

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

范围有效的证据,在搜索中按 phone 排序有效,但 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"

我找到了另一种方法来做到这一点。 现在按 custom_name 排序可从 ransack 获得。

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