如何对has_one关联进行搜索搜索并按其存在排序?

use*_*937 5 ruby-on-rails ransack

我有has_one和和belongs_to关联的两个模型。我想has_one根据相关对象是否存在对模型进行排序。

我目前可以例如根据关联的对象字段进行排序。

这是简化的代码:

class A < ActiveRecord::Base
  belongs_to :B 
end

class B < ActiveRecord::Base
  has_one :B
end

q = A.all.search(params[:q])
as = q.result.includes(:b)
Run Code Online (Sandbox Code Playgroud)

我试过了:

sort_link @q, :b_id_present
sort_link @q, :b_present

sort_link @q, :b_id_null
sort_link @q, :b_null
Run Code Online (Sandbox Code Playgroud)