0

我有一个管理与公共汽车相关的图像的应用程序。我的问题是我无法弄清楚如何通过特定的 BusImage 属性对每个块进行排序, :thumb_order 而不是 BusImage id。

一辆巴士有很多 BusImage。

实例变量在总线控制器中的 Show as... 下定义

@bus = Bus.find(params[:id]
@bus_images = BusImage.find(:all, :order => 'thumb_order asc')

我在 Bus Show 页面中调用这些实例变量,如下所示:

@bus.bus_images.each do |bus_image|
  bus_image.thumb_order
  (other attributes, etc)
end 

但无论我如何更改 @bus_images 上的 :order 方法,它都不会影响视图。当我尝试在@bus 上使用该方法时,因为 Buses 没有 thumb_order 列,所以只是茫然地盯着我。

4

2 回答 2

0

我发现这种语法更容易记住,但请选择:

@bus.bus_images.sort_by{|bi| bi.thumb_order}
于 2013-08-28T09:35:07.637 回答
0

我看不出@bus_images和你的下一个集团之间的联系@bus.bus_images。这是两个完全不同的变量。

如果你想对你的巴士图像进行排序,试试这个:

@bus.bus_images.sort_by(&:thumb_order').each do |bus_image|

或者在您的 BusImage 模型上设置默认顺序,作为rails 模型的默认排序顺序?

于 2013-08-14T13:46:35.030 回答