[RUBY] Rails enum Präfektur per Pulldown-Methode auswählen

Einführung

Ich habe es möglich gemacht, Karteninformationen in Zusammenarbeit mit Google API mit einer persönlich entwickelten Anwendung zu erfassen.

Da es schwierig ist, alle Adressen manuell einzugeben, werde ich es ermöglichen, die Präfektur per Pulldown-Methode auszuwählen.

ruby:new.html.erb



<%= form_for @ride, method: :post do |f| %>
 <%= f.select :prefecture, ['Hokkaido', 'Präfektur Aomori', 'Akita', 'Präfektur Iwate'Folgendes wird weggelassen], { include_blank: 'Bitte auswählen' } %>
<% end %>

Wenn Sie die Lesbarkeit des Codes ignorieren und implementieren, geben Sie ihn einfach so ein:

Als ich alle 47 Präfekturen auf der Ansichtsseite so betrat, fand ich es ** sehr unansehnlich **, also suchte ich nach einer intelligenten Möglichkeit, dies zu tun.

enum Es scheint eine Aufzählung zu geben, mit der Sie sie in einem Modell anstelle einer Ansicht beschreiben können.

Sie können den Code auf der Ansichtsseite sehr erfrischend gestalten!

python


class CreateRides < ActiveRecord::Migration[5.2]
  def change
    create_table :Rides do |t|
      t.integer :ride_area, null: false, default: 0
    end
end

Erstellen Sie zunächst eine Spalte mit einer Ganzzahl.

ride.rb


class Ride < ApplicationRecord
 enum ride_area:{
     "---":0,
Hokkaido:1,Präfektur Aomori:2,Präfektur Iwate:3,Präfektur Miyagi:4,Akita:5,Präfektur Yamagata:6,Präfektur Fukushima:7,
Präfektur Ibaraki:8,Präfektur Tochigi:9,Präfektur Gunma:10,Saitama:11,Präfektur Chiba:12,Tokio:13,Präfektur Kanagawa:14,
Präfektur Niigata:15,Präfektur Toyama:16,Präfektur Ishikawa:17,Präfektur Fukui:18,Präfektur Yamanashi:19,Präfektur Nagano:20,
Präfektur Gifu:21,Präfektur Shizuoka:22,Präfektur Aichi:23,Präfektur Mie:24,
Präfektur Shiga:25,Kyoto:26,Präfektur Osaka:27,Präfektur Hyogo:28,Präfektur Nara:29,Präfektur Wakayama:30,
Präfektur Tottori:31,Präfektur Shimane:32,Präfektur Okayama:33,Präfektur Hiroshima:34,Präfektur Yamaguchi:35,
Präfektur Tokushima:36,Präfektur Kagawa:37,Präfektur Ehime:38,Präfektur Kochi:39,
Präfektur Fukuoka:40,Präfektur Saga:41,Präfektur Nagasaki:42,Präfektur Kumamoto:43,Präfektur Oita:44,Präfektur Miyazaki:45,Präfektur Kagoshima:46,
Präfektur Okinawa:47
   }
end

Schreiben Sie auf der Modellseite die Präfektur so.

Die Hash-Taste wird im Auswahlfeld angezeigt.

ruby:new.html.erb



<%= form_for @ride, method: :post do |f| %>
 <%= f.select :prefecture, Ride.ride_areas.keys, {} %>
<% end %>

Lassen Sie uns den am Anfang geschriebenen Code so umschreiben.

Wenn Sie Ride.ride_areas.keys, {} schreiben, werden alle im Modell geschriebenen Präfekturen der Reihe nach verarbeitet, sodass Sie die Präfektur per Pulldown-Methode im Browser auswählen können!

das ist alles.

Recommended Posts

Rails enum Präfektur per Pulldown-Methode auswählen
Schienenmethode
[Java] Dynamischer Methodenaufruf durch Reflektion des Aufzählungstyps (Aufzählung)
Schienen delegieren Methode
[Rails] entwickelt eine Hilfsmethode
[Rails] entwickeln eine Einführungsmethode
[Enum] Verwenden Sie Rails Enum, um die Lesbarkeit von Daten zu verbessern