2011-09-02 39 views
8

我想實現一種收藏夾列表。讓我們來播放列表這個例子:用Ruby on Rails重新排列有序列表

Song A 
Song D 
Song B 
Song C 

的歌曲順序應該被保存,用戶應該能夠重新排列的順序,並在列表中的任意位置插入新元素。

我的想法是使用字段「位置」,並在保存列表時將其重置爲列表的所有元素。我認爲這是Java Hibernate的功能。

另一個想法是有一個很大的不同使用位置編號,說1000,所以仍然有餘地修改:

Song A 1000 
Song D 2000 
Song B 3000 
Song C 4000 

歌曲C將A和d之間插入位置編號1500:

Song A 1000 
Song C 1500 
Song D 2000 
Song B 3000 

有沒有更好的辦法?

回答

8

爲什麼不使用acts_as_list

+0

acts_as_list如何在幕後解決這個問題? – Bijan

+0

acts_as_list是如此恐怖fwiw。我們實際上不能在生產中使用它。 – RandallB