has_many的含义:segments,:order => '位置ASC'?

时间:2011-09-05 21:12:51

标签: ruby-on-rails activerecord

在Rails 2.3.5项目中,我在模型中找到了这行代码:

class Foo
  has_many :segments, :class_name => 'FooSegment', :order => 'position ASC'
end

FooSegment的基础表具有整数属性位置。正如人们可能猜到的那样,属于Foo的许多FooSegments都有1,2,3 ...... ......

那么我可以假设ActiveRecord总是在幕后更新这个位置属性吗?特别是:拥有id = 11的Foo,具有5个FooSegments。假设它们总是有1,2,3,4,5位并且如果FooSegment被更新则保持这个顺序,是否可以保存?

谢谢,菲利普

1 个答案:

答案 0 :(得分:1)

不,这不是AR内置的功能。但是,该项目可能正在使用acts_as_list gem或类似的东西来提供此功能。默认情况下,它使用名为position的列,然后在其他记录更改时使其保持最新。