Ich suche ein Juwel für Rails für alphabetische Paginierung. Ich wünschte, ich könnte eine Liste der ersten Buchstaben im Ergebnis finden (ich meine, wenn es keine Zeile gibt, die mit 'a' beginnt, möchte ich nicht, dass das 'a' auf den Paginierungslinks angezeigt wird). Gibt es diese Art von Edelstein bereits?
Vielen Dank im Voraus!
Das wäre gar nicht so schwer zu erstellen, zum Beispiel wenn du find
hättest, vielleicht wie:
... was eine Ergebnismenge wie eine Liste von Wörtern wie folgt zurückgab:
%Vor%... das könntest du tun:
%Vor%was zurückgeben würde:
%Vor% Der .collect {|word| word[0,1]}
speichert den ersten Buchstaben jedes Wortes in einem neuen Array, während uniq
die eindeutigen Buchstaben herausfiltert und sort
diese alphabetisch sortiert.
Ordnen Sie das einfach einer Variablen zu und Sie können es in Ihrer Ansicht wie folgt verwenden:
%Vor%Ihre Controller-Aktion könnte dann entscheiden, was mit dem Parameter aus der Paginierung geschehen soll, wenn einer übergeben wird:
%Vor%Und dann würde der Bereich in Ihrem Modell etwa wie folgt aussehen:
%Vor%Ihre Routen erfordern etwas wie:
%Vor%Ich habe das nicht vollständig getestet, aber es sollte dich auf den richtigen Weg bringen.
Um eine dynamische Auswahl aus der entsprechenden Tabelle zu erhalten, können Sie einen dynamischen SQL-Finder verwenden.
In diesem Beispiel wählen wir aus einer Tabelle namens "albums" aus und erstellen eine Spalte "name", um die Werte zu speichern. Diese werden im Modellobjekt "Album" zurückgegeben. Ändern Sie einen dieser Namen nach Ihren Bedürfnissen.
%Vor%Beachten Sie, dass Sie die Albummodellobjekte nicht für nichts verwenden können, außer für die Abfrage des Felds "name". Dies liegt daran, dass wir diesem Objekt eine Lobotomie gegeben haben, indem wir nur das Feld "Name" gefüllt haben - es ist nicht einmal ein gültiges "ID" -Feld zugeordnet!
Tags und Links ruby-on-rails gem pagination alphabetical