考虑以下代码:Rails的一个一对多的关系 - 维持秩序
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
如何保持歌曲的初始顺序?
你也可以'歌曲= Sheet.find(1).songs.order( “id asc”)'或'songs = Sheet.find(1).songs.sort_by(&:id)' – house9 2012-07-13 20:08:12
@ house9我不想用'id'命令。我想保留原来的订单,它的订单被添加进来。 – 2012-07-13 20:40:55
啊是的,那么你需要一个额外的模型,因为@ CrazyVipa建议 – house9 2012-07-13 20:58:44