我有一個用戶屬於User_type。在user_type模型中,有一個名爲position的字段來處理顯示user_types及其用戶時的默認排序。Rails group_by和相關模型中的字段排序
Unfortunataly在使用Ransack進行搜索時不起作用,所以我需要從User模型中搜索並使用group_by根據其user_type_id對記錄進行分組。
這很好,但我需要一種方法來尊重在user_type模型中定義的排序。這也是動態的,因此無法告訴用戶模型的排序是什麼。
因此,我想我需要循環訪問group_by數組並手動進行排序。但我不知道從哪裏開始。這是控制器方法:
def index
@q = User.ransack(params[:q])
@users = @q.result(distinct: true).group_by &:user_type
end
如何操作該數組以排序相關模型中的字段?
default_scope是不是在任何情況下使用是一個好主意。它可能會導致意外的行爲。最好創建範圍或使用純粹的「訂單」方法。 –
這不起作用,因爲沒有從UserType進行查詢。 –