[RUBY] Wenn Sie den Wortlaut ändern möchten, der angezeigt werden soll, wenn Sie ein Auswahlfeld aus enum erstellen

Ich denke nicht, dass dies ein seltener Fall ist, aber notieren Sie sich beim Erstellen eines Auswahlfelds aus enum, wie Sie den Wortlaut ändern können. Als Prämisse verwenden wir "Aufzählung" und "Reform" für das Juwel.

product_form.rb


extend Enumerize

enumerize :fluit, in: {
  apple:      1,
  orange:     2,
  peach:      3,
  strawberry: 4,
  cherry:     5,
}, predicates: { prefix: true }

property :fluit

ja.yml


product:
  fluit:
    apple:Apfel
    orange:Orange
    peach:Pfirsiche
    strawberry:Erdbeere
    cherry:Kirsche

Wenn Sie es normal schreiben, ist dies in Ordnung.

new.slim


= f.select :fluit, f.object.class.fluit.options, {prompt: 'Obst auswählen'}

Nehmen wir jedoch an, ihm wurde gesagt: "Ich möchte die Wörter" (im Sonderverkauf) "für" Äpfel "und" Kirschen "setzen." Das heißt, ich möchte ja.yml nicht ändern. Das Schreiben nacheinander ohne Verwendung von "f.object.class.fluit.options" ist ebenfalls schlecht wartbar.

Daher habe ich eine Methode erstellt, die das von f.object.class.fluit.options generierte Array mit einer Map umdreht und den Wortlaut hinzufügt und nur zurückgibt, wenn es sich um einen bestimmten Wert handelt.

product_form.rb


def fruit_select_display
  self.class.fluit.options.map do |key, value|
    if value == 'apple' || value == 'cherry'
      [key + '(Während des Sonderverkaufs)', value]
    else
      [key, value]
    end
  end
end

new.slim


= f.select :fluit, f.object.fruit_select_display, {prompt: 'Obst auswählen'}

Damit konnte ich es einmal benutzen.

Recommended Posts

Wenn Sie den Wortlaut ändern möchten, der angezeigt werden soll, wenn Sie ein Auswahlfeld aus enum erstellen
Wenn Sie die Java-Entwicklungsumgebung von Eclipse aus ändern möchten
Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
Wenn Sie die Methode außerhalb verwenden möchten
So erstellen Sie eine Route direkt aus der URL, die Sie + α angeben möchten
[Rails] After-Option nützlich, wenn Sie die Reihenfolge der DB-Spalten ändern möchten
So erstellen Sie ein Formular zur Auswahl eines Datums aus dem Kalender
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte dem select-Attribut einen Klassennamen geben
[Enum_help] Verwenden Sie enum_help, um ein Auswahlfeld zu erstellen, das auf Japanisch angezeigt wird!
[Swift] Wenn Sie wissen möchten, ob die Anzahl der Zeichen in String mit einer bestimmten Anzahl übereinstimmt ...
Eine Sammlung von Mustern, die Sie kennen möchten, um den Code nicht zu komplizieren
Ein Memorandum, wenn Sie die von Jena & SPARQL erfassten Daten für jede Variable anzeigen möchten.
Ein Beispiel für kleine Arbeiten, bei denen Sie den Definitionswert nach der Umgebung aufteilen möchten, sich dessen jedoch nicht bewusst sein möchten
Wenn Sie mit dem Befehl "Rails Generate Migration" eine Spalte vom Typ "String" mit begrenzter Länge hinzufügen möchten
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Sie können die Version der Projektfacette nicht von einem dynamischen Webmodul in x.x ändern. Wie man damit umgeht
Wenn Rails eine Sitzung für einen bestimmten Controller deaktivieren soll
Vergessen Sie nicht freizugeben, wenn Sie das Objekt von S3 erhalten!
Ich möchte, dass Sie Enum # name () für den Schlüssel von SharedPreference verwenden
Was tun, wenn Sie das mit bootstrap-select erstellte Auswahlfeld nicht aktivieren können?
Wenn Sie Android Room verwenden und die Spaltendefinition ändern möchten
Lernen Sie beim Erstellen eines WEB-Servers die Einführung in die Entwicklung von WEB-Anwendungen anhand der Grundlagen
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
Ein Hinweis, wenn Sie Tupel in Java möchten
[Ruby] Wenn Sie mehrere Zeichen ersetzen möchten
[Active Admin] Ich möchte den Umfang der Sammlung angeben, die in select_box angezeigt werden soll
Eine Warnung wird angezeigt, wenn versucht wird, eine große Ganzzahl mit den speziellen Variablen $ 1, $ 2, $ 3 ... zu verwenden.