[RUBY] [Enum_help] Verwenden Sie enum_help, um ein Auswahlfeld zu erstellen, das auf Japanisch angezeigt wird!

Überblick

Verwenden Sie das Juwel enum_help, um den Vorgang zum Erstellen des Auswahlfelds aufzuzeichnen, das auf Japanisch als Memorandum angezeigt wird.

Umgebung

・ Ruby '2.5.7' ・ Schienen '5.2.3' ・ Enum_help '0.0.17'

Prozess

1. Vorbereitung

Fügen Sie Ihrem Gemfile enum_help hinzu.

gem 'enum_help'

"Bundle-Installation" im Terminal.

bundle install

2. Fügen Sie der Tabelle eine Aufzählungsspalte hinzu

Fügen Sie die Zielspalte hinzu.

db/migrate/20xxxxxxxxx_add_place_to_datespots.rb


class AddPlaceToDatespots < ActiveRecord::Migration[5.2]
  def change
    add_column :datespots, :place, :integer
  end
end

"Rails db: migrate" im Terminal.

rails db:migrate

3. Modelldefinition

Nach dem Vorbereiten der Aufzählungsspalte in der Tabelle besteht der nächste Schritt darin, der Aufzählungsspalte mehrere Konstanten zuzuordnen.

app/models/datespot.rb


class Datespot < ApplicationRecord
(Kürzung)
  enum place: {
    Ginza: 0, Yurakucho: 1, Shinbashi: 2, Hamamatsucho: 3, Tamachi: 4, Shinjuku: 5,
    Yoyogi: 6, Okubo: 7, Shibuya: 8, Omotesando: 9, Aoyama: 10, Harajuku: 11,
    Akasaka: 12, Roppongi: 13, Azabu: 14, Marunouchi: 15, Nihonbashi: 16, Kanda: 17,
    Ningyocho: 18, Ikebukuro: 19, Jiyugaoka: 20, Sangenjaya: 21, Futakotamagawa: 22, Shinagawa: 23,
    Gotanda: 24, Osaki: 25, Odaiba: 26, Toyosu: 27, ebisu: 28, Hiroo: 29,
    Shirogane: 30, Daikanyama: 31, Nakameguro: 32, Meguro: 33, Iidabashi: 34, Yotsuya: 35,
    Kagurazaka: 36, Ueno: 37, Asakusa: 38, Nakano: 39, Kichijoji: 40, Tachikawa: 41, Others: 42
  }
end

4. Definition von enum_help

Fügen Sie eine japanische Übersetzung zu config / locales / ja.yml hinzu.

config/locales/ja.yml


ja:
  enums:
    datespot:
      place:
        Ginza:Ginza
        Yurakucho:Yurakucho
        Shinbashi:Shimbashi
        Hamamatsucho:Hamamatsu Stadt
        Tamachi:Tamachi
        Shinjuku:Shinjuku
        Yoyogi:Yoyogi
        Okubo:Okubo
        Shibuya:Shibuya
        Omotesando:Omotesando
        Aoyama:Aoyama
        Harajuku:Harajuku
        Akasaka:Akasaka
        Roppongi:Roppongi
        Azabu:Azabu
        Marunouchi:Marunouchi
        Nihonbashi:Nihonbashi
        Kanda:Kanda
        Ningyocho:Ningyocho
        Ikebukuro:Ikebukuro
        Jiyugaoka:Jiyugaoka
        Sangenjaya:Sangenchaya
        Futakotamagawa:Futako Tamagawa
        Shinagawa:Shinagawa
        Gotanda:Gotanda
        Osaki:Osaki
        Odaiba:Odaiba
        Toyosu:Toyosu
        ebisu:Ebisu
        Hiroo:Hiroo
        Shirogane:Platin
        Daikanyama:Daikanyama
        Nakameguro:Nakameguro
        Meguro:Meguro
        Iidabashi:Iida-Brücke
        Yotsuya:Yotsuya
        Kagurazaka:Kagurazaka
        Ueno:Ueno
        Asakusa:Asakusa
        Nakano:Nakano
        Kichijoji:Kichijoji
        Tachikawa:Tachikawa
        Others:Andere

5. Auswahlfeld erstellen

Erstellen Sie ein Auswahlfeld mit der praktischen Methode enum_help.

app/views/datespots/_datespot_form.html.erb


<%= form_with model: @datespot, local: true do |f| %>
(Kürzung)
  <div class = 'form-group'>
    <%= f.label :place %> <span class="input-need">* Erforderlich</span>
    <%= f.select :place, options_for_select(Datespot.places_i18n.invert, selected: f.object.place), { include_blank: true }, { class: 'form-control', id: 'datespot_place' } %>
  </div>
<% end %>

Ich mache japanische und englische Hashes mit "Datespot.places_i18n.invert".

irb(main):001:0> Datespot.places_i18n.invert
=> {"Ginza"=>"Ginza", "Yurakucho"=>"Yurakucho", "Shimbashi"=>"Shinbashi", "Hamamatsu Stadt"=>"Hamamatsucho", "Tamachi"=>"Tamachi", "Shinjuku"=>"Shinjuku", "Yoyogi"=>"Yoyogi
", "Okubo"=>"Okubo", "Shibuya"=>"Shibuya", "Omotesando"=>"Omotesando", "Aoyama"=>"Aoyama", "Harajuku"=>"Harajuku", "Akasaka"=>"Akasaka", "Roppongi"=>"Roppongi", "Hanf
Stoff"=>"Azabu", "Marunouchi"=>"Marunouchi", "Nihonbashi"=>"Nihonbashi", "Kanda"=>"Kanda", "Ningyocho"=>"Ningyocho", "Ikebukuro"=>"Ikebukuro", "Jiyugaoka"=>"Jiyugaoka",
 "Sangenchaya"=>"Sangenjaya", "Futako Tamagawa"=>"Futakotamagawa", "Shinagawa"=>"Shinagawa", "Gotanda"=>"Gotanda", "Osaki"=>"Osaki", "Odaiba"=>"Odaiba", "Toyosu"=>"To
yosu", "Ebisu"=>"ebisu", "Hiroo"=>"Hiroo", "Platin"=>"Shirogane", "Daikanyama"=>"Daikanyama", "Nakameguro"=>"Nakameguro", "Meguro"=>"Meguro", "Iida-Brücke"=>"Iidaba
shi", "Yotsuya"=>"Yotsuya", "Kagurazaka"=>"Kagurazaka", "Ueno"=>"Ueno", "Asakusa"=>"Asakusa", "Nakano"=>"Nakano", "Kichijoji"=>"Kichijoji", "Tachikawa"=>"Tachikawa",
 "Andere"=>"Others"}

Enthält den in "selected: f.object.place" ausgewählten Wert.

Ein leeres Element wird am Anfang mit "include_blank: true" hinzugefügt.

Jetzt haben Sie das folgende Auswahlfeld! image.png

6. Erhalten Sie den Wert in der Ansicht

Wenn Sie einen Wert in der Ansicht empfangen und "_i18n" hinzufügen, wird dieser übrigens auf Japanisch angezeigt.

app/views/datespots/_datespot.html.erb


(Kürzung)
<%= datespot.place_i18n %>

Referenz

EnumHelp [Rails] enum tutorial

Recommended Posts

[Enum_help] Verwenden Sie enum_help, um ein Auswahlfeld zu erstellen, das auf Japanisch angezeigt wird!
So erstellen Sie ein Platzhalterteil zur Verwendung in der IN-Klausel
[Rails] Verwendung von Auswahlfeldern in Ransack
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So erstellen Sie ein Thema in Liferay 7 / DXP
So erstellen Sie einfach ein Pulldown mit Rails
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
So erstellen Sie einen Daten-URI (base64) in Java
Wenn Sie den Wortlaut ändern möchten, der angezeigt werden soll, wenn Sie ein Auswahlfeld aus enum erstellen
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
So wählen Sie ein bestimmtes Datum anhand des Codes im FS-Kalender aus
Ich möchte eine Parkettdatei auch in Ruby erstellen
So erstellen Sie ein Service Builder-Portlet in Liferay 7 / DXP
So erstellen Sie eine Methode
Erstellen wir eine TODO-App in Java 13 TODO-Formularvalidierung 1: Zeichenbegrenzung · Gradle-Update zur Verwendung von @Validated
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
Wie man Lombok im Frühling benutzt
Vorbereiten der Erstellung einer Rails-Anwendung
Erstellen Sie eine Datenbank in einer Produktionsumgebung
Erstellen Sie eine neue App mit Rails
Verwendung von InjectorHolder in OpenAM
Erstellen Sie ein Servlet-Programm in Eclipse
Wie verwende ich Klassen in Java?
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
Ich möchte im Dialogfeld mehrere Elemente mit einem benutzerdefinierten Layout auswählen
So erstellen Sie eine Zip-Datei beim Gruppieren von Datenbanksuchergebnissen in Java
Erstellen Sie mit Selenide in 5 Minuten eine automatische Browser-Betriebsumgebung
Haben Sie ein Werkzeug zum Erstellen und Öffnen einer neuen Leinwand in der Mac-Vorschau
Ein Memorandum zur Verwendung von Eclipse
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
So fügen Sie ein Video in Rails ein
So erstellen Sie ein Maven-Repository für 2020
Verwendung von Docker in VSCode DevContainer
Verwendung von MySQL im Rails-Tutorial
Erstellen Sie eine TODO-App in Java 7 Create Header
[Swift5] So erstellen Sie einen Begrüßungsbildschirm
Verwendung von Umgebungsvariablen in RubyOnRails
Ich möchte @Autowired in Servlet verwenden
So veröffentlichen Sie eine Bibliothek in jCenter
Verstehe in 5 Minuten !! Wie man Docker benutzt
Verwendung von credentials.yml.enc aus Rails 5.2
Schritte zur Verwendung von JConsole mit Cognos Analytics
Verwendung von ExpandableListView in Android Studio
So zeigen Sie Fehlermeldungen auf Japanisch an
Volume, das viele logische Operatoren in der if-Anweisung verwenden möchte
Ein Memo zum Erstellen eines einfachen Formulars, das nur HTML und CSS in Rails 6 verwendet
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch