0

我跟随Ryan Bates对可排序表列的railscast,并成功地获得了一个列来升序和降序排序。Railscasts#228 - 可排序表列

我的表格比Railscast更复杂,因为我有来自不同表格的列。

# controller 
@cars = Car.find(:all).order(sort_column + " " + sort_direction).includes(:manufacturers) 


#view 
<%= sortable "age" %> 

如何为相关表格(如制造商)添加可排序列?

回答

3

我有一个类似的问题。得到它固定的东西,如:

<%= sortable "manufacturers.name", "Manufacturer name" %> 
<%= sortable "cars.age", "Age" %> 

在application_controller排序函数应该是这样的:

def sort_column 
    ['manufacturers.name', 'cars.age'].include?(params[:sort]) ? params[:sort] : 'cars.age' 
end 
+0

嗨克里斯蒂安,这不是遗憾的是工作。它可以在同一张表中工作,但不会使用上面的代码在其他列上排序。你确定这个确切的代码工作? – sscirrus 2010-10-18 11:11:06

+0

我已经给出了答案的更多细节。它现在工作吗? – 2010-10-25 13:14:55

+0

嗨基督教,我玩了30分钟,并开始让它工作 - 我需要一些控制器,并查看调整来获取它。这是最后的挑战:我的一个可排序的领域是一种称为“效率”的汽车的等级方法,该方法是基于两个汽车的其他领域(将一个领域彼此分开)的计算。它没有找到cars.efficiency :) – sscirrus 2010-10-28 09:59:26