J'ai rendu possible l'acquisition d'informations cartographiques en coopération avec Google API avec une application développée personnellement.
Comme il est difficile de saisir manuellement toutes les adresses, je vais essayer de permettre de sélectionner la préfecture par méthode déroulante.
ruby:new.html.erb
<%= form_for @ride, method: :post do |f| %>
<%= f.select :prefecture, ['Hokkaido', 'Préfecture d'Aomori', 'Akita', 'Préfecture d'Iwate'Ce qui suit est omis], { include_blank: 'Veuillez sélectionner' } %>
<% end %>
Si vous ignorez la lisibilité du code et l'implémentez, vous le saisissez simplement comme ceci,
Quand je suis entré dans les 47 préfectures du côté de la vue comme ça, j'ai pensé que c'était ** très disgracieux **, alors j'ai cherché une façon intelligente de le faire.
enum Il semble y avoir une énumération, qui vous permet de la décrire dans un modèle au lieu d'une vue,
Vous pouvez rendre le code du côté de la vue assez rafraîchissant!
python
class CreateRides < ActiveRecord::Migration[5.2]
def change
create_table :Rides do |t|
t.integer :ride_area, null: false, default: 0
end
end
Tout d'abord, créez une colonne avec un entier.
ride.rb
class Ride < ApplicationRecord
enum ride_area:{
"---":0,
Hokkaido:1,Préfecture d'Aomori:2,Préfecture d'Iwate:3,Préfecture de Miyagi:4,Akita:5,Préfecture de Yamagata:6,Préfecture de Fukushima:7,
Préfecture d'Ibaraki:8,Préfecture de Tochigi:9,Préfecture de Gunma:10,Saitama:11,Préfecture de Chiba:12,Tokyo:13,Préfecture de Kanagawa:14,
Préfecture de Niigata:15,Préfecture de Toyama:16,Préfecture d'Ishikawa:17,Préfecture de Fukui:18,Préfecture de Yamanashi:19,Préfecture de Nagano:20,
Préfecture de Gifu:21,Préfecture de Shizuoka:22,Préfecture d'Aichi:23,Préfecture de Mie:24,
Préfecture de Shiga:25,Kyoto:26,Préfecture d'Osaka:27,Préfecture de Hyogo:28,Préfecture de Nara:29,Préfecture de Wakayama:30,
Préfecture de Tottori:31,Préfecture de Shimane:32,Préfecture d'Okayama:33,Préfecture d'Hiroshima:34,Préfecture de Yamaguchi:35,
Préfecture de Tokushima:36,Préfecture de Kagawa:37,Préfecture d'Ehime:38,Préfecture de Kochi:39,
Préfecture de Fukuoka:40,Préfecture de Saga:41,Préfecture de Nagasaki:42,Préfecture de Kumamoto:43,Préfecture d'Oita:44,Préfecture de Miyazaki:45,Préfecture de Kagoshima:46,
Préfecture d'Okinawa:47
}
end
Du côté modèle, écrivez la préfecture comme ceci.
La clé de hachage s'affiche dans la zone de sélection.
ruby:new.html.erb
<%= form_for @ride, method: :post do |f| %>
<%= f.select :prefecture, Ride.ride_areas.keys, {} %>
<% end %>
Réécrivons le code écrit au début comme ceci.
En écrivant Ride.ride_areas.keys, {}
, toutes les préfectures écrites dans le modèle seront traitées dans l'ordre, vous pouvez donc sélectionner la préfecture par méthode déroulante sur le navigateur!
c'est tout.
Recommended Posts