考慮以下代碼: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