排序!每个块,属性Ruby 1.8.7,Rails 2.3.15,

时间:2013-07-29 15:04:10

标签: ruby-on-rails-2 ruby-1.8.7

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

巴士有很多BusImages。

实例变量在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列,只是茫然地盯着我。

2 个答案:

答案 0 :(得分:0)

我发现@bus_images与您的下一个集团@bus.bus_images之间没有任何关联。这是两个完全不同的变量。

如果您想对公交车图像进行排序,请尝试以下方法:

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

或者在BusImage模型上设置默认顺序,如Default sort order for a rails model?

答案 1 :(得分:0)

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

@bus.bus_images.sort_by{|bi| bi.thumb_order}