2010-02-15 7 views
0

J'essaie de mettre en œuvre une fonctionnalité d'interface utilisateur pour une page d'annonces où l'utilisateur peut modifier l'ordre des enregistrements qu'ils ont créés.Comment implémenter l'ordre des lignes dans Rails?

Je suppose qu'une façon de le faire serait de stocker un champ de position avec une sorte de règle d'auto-incrémentation éditable; Les valeurs de position des lignes peuvent alors être permutées lorsque l'utilisateur lève ou abaisse la position. Cependant, je ne suis pas sûr de savoir comment cela serait fait, je suis toujours un débutant Rails.

Je devrais également mentionner que j'essaye d'éviter des solutions qui me lient à une base de données particulière.

Des suggestions?

Répondre

2

acts_as_list est la solution standard ici. Vous aurez une colonne position dans votre modèle qui tiendra la commande.

+0

Il m'a fallu quelques minutes pour comprendre les plugins et corriger l'utilisation, mais ça marche très bien! Merci! –

2

Ceci est un commentaire/une addition à la réponse accepté ci-dessus. Acts_as_list n'est pas conçu pour autre chose qu'un prototype, et dès le départ, il ne gère pas du tout la concurrence ou l'intégrité des données. À tout le moins, vous devez définir votre niveau d'isolation à sérialisable! Voici un short screen cast avec plus d'informations, et quelques solutions de contournement.

Questions connexes