Neuordnung der sortierten Liste mit Ruby on Rails

8

Ich möchte eine Art Favoritenliste implementieren. Lass uns eine Playliste für dieses Beispiel nehmen:

%Vor%

Die Reihenfolge der Songs sollte gespeichert werden und der Benutzer sollte in der Lage sein, diese Reihenfolge neu anzuordnen und neue Elemente an einem beliebigen Punkt in der Liste einzufügen.

Meine Idee ist, ein Feld "position" zu verwenden und es für alle Elemente der Liste zurückzusetzen, wenn die Liste gespeichert wird. Ich denke, das ist, was Javas Hibernate tut.

Eine andere Idee ist es, Positionsnummern mit einem großen Unterschied zu verwenden, sagen wir 1000, so dass noch Platz für Änderungen bleibt:

%Vor%

Song C wird zwischen A und D mit der Positionsnummer 1500 eingefügt:

%Vor%

Irgendwelche besseren Ideen?

    
deamon 02.09.2011, 11:49
quelle

2 Antworten

8

Warum sollten Sie acts_as_list nicht verwenden?

    
lucapette 02.09.2011, 11:52
quelle
5

Wenn Sie Ihre eigenen rollen möchten, können die Antworten auf diese Frage hilfreich sein:

Best Möglichkeit, eine geordnete Liste in der Datenbank zu speichern, während die Reihenfolge beibehalten wird

Scheint so, als ob der Konsens darin besteht, einfach ein Bestellfeld zu verwenden und alle beim Speichern neu zu ordnen. Sie können den Umfang der Datenbankarbeit verringern, wenn Sie dem Benutzer erlauben, die Client-Seite interaktiv neu zu ordnen, und einfach die endgültige Liste senden, um sie auf dem Server zu speichern.

    
spike 02.09.2011 12:45
quelle