【发布时间】:2012-07-13 19:58:07
【问题描述】:
考虑这段代码:
class Sheet
has_many :songs
end
class Song
belongs_to :sheet
end
sheet = Sheet.find(1)
sheet.songs << Song.find(5)
sheet.songs << Song.find(10)
sheet.songs << Song.find(8)
现在的问题是,当我运行下面的代码时,它会返回该表的歌曲列表,但它们的顺序与我在 (5,10,8) 中添加它们的顺序不同。它实际上给了我name订购的歌曲。
songs = Sheet.find(1).songs
如何保持歌曲的初始顺序?
【问题讨论】:
-
你也可以
songs = Sheet.find(1).songs.order("id asc")或songs = Sheet.find(1).songs.sort_by(&:id) -
@house9 我不想通过
id订购。我想保留原来的顺序,就是加入的顺序。 -
啊,是的,那么您将需要一个额外的模型,正如
@CrazyVipa建议的那样