2016-02-28 53 views
0

我有一個名爲Project與此關聯模型設置爲員工貢獻者鏈接:洗劫排序嵌套Assosiation在屬性名

has_many :project_contributions, dependent: :destroy 
has_many :contributors, through: :project_contributions, source: 'employee' 

在我看來,我有此排序字段:

<%= sort_link(@q, :contributors_name) %> 

當我點擊鏈接時,這給我一個錯誤,它抱怨該方法不存在。

我可以看到,由於該協會是一個has_many協會我應該「命名」排序鏈接別的東西,但我不知道我應該是什麼。

還是Ransack不支持has_many排序?也可能是我使用了不同的名稱,即原始表名(employee)。

更新:我發現這個錯誤與事實有關,我改變了順序函數使排序時最後出現空值。就像我在這個答案中顯示: https://stackoverflow.com/a/35529699/900271

是否有人知道我可以允許嵌套列排序,而仍然排序空值最後?

回答

0

好的,所以現在我發現解決方案中的鏈接問題/答案(再次鏈接到github問題)。

在我的控制器中,當我根據排序列進行訂購時,我需要使用attr_name而不僅僅是name,當我自定義排序順序以最後處理空值時。

像這樣:

@result = @q.result.except(:order).order("#{@q.sorts.first.attr_name} #{@q.sorts.first.dir} NULLS LAST")