2014-10-30 79 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") 
相关问题