2014-10-30 32 views
0

我創建了一個由ryan bates在他的電視直播#228中描述的排序方法:http://railscasts.com/episodes/228-sortable-table-columns如何通過rails中的多個列對錶進行分類?

現在我的表默認按grant_id排序。我想要進行子排序,這意味着默認的排序將由grant_id然後由student_id進行: 如果我有3個條目。 2個由一個學生和另一個學生的另一個入口。 (都有相同的資助)。 我希望同一個學生的兩個作品可以排在一起排序。 這是我使用的代碼: 在applcation_helper:

def sortable(column, title = nil) 
    title ||= colum.titleize 
    direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc" 
    link_to title, :sort => column, :direction => direction 
end  

在控制器:

def sort_column 
    Entry.column_names.include?(params[:sort]) ? params[:sort] : "grant_id" 
end 

def sort_direction 
    %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc" 
end 

@entries = current_user.entries.order(sort_column + " " + sort_direction) 

回答

0

你需要爲每列指定排序順序:

@entries = current_user.entries.order("grant_id ASC, student_id DESC") 
相關問題