关联的Ransack排序不起作用

时间:2014-10-10 08:05:50

标签: sorting ransack

当我使用关联时,我需要使用Ransack sort_link方法对表中的数据进行排序。 我有:

模型

class Deal < ActiveRecord::Base
has_many :tasks
...
end

class Task < ActiveRecord::Base
belongs_to  :deal
...
end

CONTROLLER

...
@search = Deal.where(assigned_to: @user_id).where.not(stage: [6, 7]).search(params[:q])
@deals = @search.result.joins(:tasks).where(assigned_to: @user_id).where.not(stage: [6, 7]).uniq
...

_DEALS.HTML.ERB

...
<th style="width: 15%" class="text-center"><%= sort_link @search, 'tasks.due', "Задача", {}, { :remote => true, :method => :get } %></th>
...

结果是排序不起作用,但是我们从服务器获得了积极的信号:

服务器日志

Processing by DealsController#index as JS
Parameters: {"q"=>{"s"=>"tasks.due desc"}}
Rendered deals/_deals.html.erb (21.0ms)
Rendered deals/index.js.erb (24.8ms)
Completed 200 OK in 39ms (Views: 24.0ms | ActiveRecord: 9.7ms)

已审核了数十个与搜索范围相关的问题,包括Using Ransack to sort attributes for parent of parentRails sorting associations with Ransack 但到目前为止他们没有回复。

我怀疑我在https://github.com/activerecord-hackery/ransack中做错了什么。有几个聪明的猜测,但不幸的是他们没有工作。

THX。

1 个答案:

答案 0 :(得分:1)

根据github issue,尝试sort_link @search, 'tasks_due'...

请注意它是assocation_name,而不是文档

中的table_name.name