[RUBY] [Enum_help] Utilisez enum_help pour créer une boîte de sélection affichée en japonais!

Aperçu

Utilisez la gemme enum_help pour enregistrer le processus de création de la boîte de sélection affichée en japonais sous forme de mémorandum.

environnement

・ Rubis '2.5.7' ・ Rails '5.2.3' ・ Enum_help '0.0.17'

processus

1. Préparation

Ajoutez enum_help à votre Gemfile.

gem 'enum_help'

"Bundle install" dans le terminal.

bundle install

2. Ajouter une colonne enum à la table

Ajoutez la colonne cible.

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" dans le terminal.

rails db:migrate

3. Définition du modèle

Après avoir préparé la colonne enum dans le tableau, l'étape suivante consiste à associer plusieurs constantes à la colonne enum.

app/models/datespot.rb


class Datespot < ApplicationRecord
(réduction)
  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. Définition de enum_help

Ajoutez une traduction japonaise à config / locales / ja.yml.

config/locales/ja.yml


ja:
  enums:
    datespot:
      place:
        Ginza:Ginza
        Yurakucho:Yurakucho
        Shinbashi:Shimbashi
        Hamamatsucho:Ville de Hamamatsu
        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:platine
        Daikanyama:Daikanyama
        Nakameguro:Nakameguro
        Meguro:Meguro
        Iidabashi:Pont d'Iida
        Yotsuya:Yotsuya
        Kagurazaka:Kagurazaka
        Ueno:Ueno
        Asakusa:Asakusa
        Nakano:Nakano
        Kichijoji:Kichijoji
        Tachikawa:Tachikawa
        Others:Autre

5. Créer une boîte de sélection

Créez une zone de sélection à l'aide de la méthode pratique de enum_help.

app/views/datespots/_datespot_form.html.erb


<%= form_with model: @datespot, local: true do |f| %>
(réduction)
  <div class = 'form-group'>
    <%= f.label :place %> <span class="input-need">* Obligatoire</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 %>

Je fais des hachages japonais et anglais avec "Datespot.places_i18n.invert".

irb(main):001:0> Datespot.places_i18n.invert
=> {"Ginza"=>"Ginza", "Yurakucho"=>"Yurakucho", "Shimbashi"=>"Shinbashi", "Ville de Hamamatsu"=>"Hamamatsucho", "Tamachi"=>"Tamachi", "Shinjuku"=>"Shinjuku", "Yoyogi"=>"Yoyogi
", "Okubo"=>"Okubo", "Shibuya"=>"Shibuya", "Omotesando"=>"Omotesando", "Aoyama"=>"Aoyama", "Harajuku"=>"Harajuku", "Akasaka"=>"Akasaka", "Roppongi"=>"Roppongi", "chanvre
tissu"=>"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", "platine"=>"Shirogane", "Daikanyama"=>"Daikanyama", "Nakameguro"=>"Nakameguro", "Meguro"=>"Meguro", "Pont d'Iida"=>"Iidaba
shi", "Yotsuya"=>"Yotsuya", "Kagurazaka"=>"Kagurazaka", "Ueno"=>"Ueno", "Asakusa"=>"Asakusa", "Nakano"=>"Nakano", "Kichijoji"=>"Kichijoji", "Tachikawa"=>"Tachikawa",
 "Autre"=>"Others"}

Contient la valeur sélectionnée dans "selected: f.object.place".

Un élément vide est ajouté au début avec "include_blank: true".

Vous avez maintenant la boîte de sélection suivante! image.png

6. Recevoir la valeur dans la vue

D'ailleurs, lors de la réception d'une valeur dans la vue, si vous ajoutez "_i18n", elle sera affichée en japonais.

app/views/datespots/_datespot.html.erb


(réduction)
<%= datespot.place_i18n %>

référence

EnumHelp [Rails] enum tutorial

Recommended Posts

[Enum_help] Utilisez enum_help pour créer une boîte de sélection affichée en japonais!
Comment créer une partie d'espace réservé à utiliser dans la clause IN
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Essayez de créer un babillard en Java
Comment créer un thème dans Liferay 7 / DXP
Comment créer facilement un pull-down avec des rails
Comment créer un environnement Java en seulement 3 secondes
Comment créer un projet Spring Boot dans IntelliJ
J'ai essayé de créer une compétence Clova en Java
Comment créer un URI de données (base64) en Java
Lorsque vous souhaitez modifier le libellé à afficher lors de la création d'une zone de sélection à partir d'énumération
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Comment sélectionner une date spécifiée par code dans le calendrier FS
Je veux créer un fichier Parquet même en Ruby
Comment créer un portlet de générateur de services dans Liferay 7 / DXP
Comment créer une méthode
Créons une application TODO dans Java 13 TODO form validation 1: Character limit-Update Gradle to use @Validated
J'ai essayé de créer une application cartographique simple dans Android Studio
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
Comment utiliser Lombok au printemps
Préparation à la création de l'application Rails
Créer une base de données dans un environnement de production
Créer une nouvelle application avec Rails
Comment utiliser InjectorHolder dans OpenAM
Créer un programme Servlet dans Eclipse
Comment utiliser les classes en Java?
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Je souhaite sélectionner plusieurs éléments avec une disposition personnalisée dans la boîte de dialogue
Pour créer un fichier Zip lors du regroupement des résultats de recherche de base de données en Java
Créez un environnement de fonctionnement automatique du navigateur en 5 minutes à l'aide de Selenide
Avoir un outil pour créer et ouvrir une nouvelle toile dans l'aperçu Mac
Un mémorandum sur l'utilisation d'Eclipse
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment insérer une vidéo dans Rails
Comment créer un référentiel Maven pour 2020
Comment utiliser Docker dans VSCode DevContainer
Comment utiliser MySQL dans le didacticiel Rails
Créer une application TODO dans Java 7 Créer un en-tête
[Swift5] Comment créer un écran de démarrage
Comment utiliser les variables d'environnement dans RubyOnRails
Je veux utiliser @Autowired dans Servlet
Comment publier une bibliothèque dans jCenter
Comprendre en 5 minutes !! Comment utiliser Docker
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Procédure d'utilisation de JConsole avec Cognos Analytics
Comment utiliser ExpandableListView dans Android Studio
Comment afficher les messages d'erreur en japonais
Volume qui souhaite utiliser de nombreux opérateurs logiques dans l'instruction if
Un mémo pour créer un formulaire simple en utilisant uniquement HTML et CSS dans Rails 6
[Introduction à Docker] Créer une image Docker pour l'apprentissage automatique et utiliser le notebook Jupyter