Ruby on Rails Comment implémenter la saisie d'adresse automatique

introduction

Version actuelle: macOS Catalina 10.15.3

J'ai essayé d'implémenter le remplissage automatique des adresses dans Ruby on Rails. Décrivez comme un mémorandum. J'espère que cela vous aidera.

procédure

(1) Tout d'abord, téléchargez le fichier js (plug-in jQuery) à partir de ce qui suit. jquery.jpostal.js

(2) Placez le fichier js téléchargé dans app / assets / javascripts.

(3) Après avoir ajouté ce qui suit au Gemfile, $ bundle install` '' dans le terminal.

Gemfile


#Pour pouvoir utiliser jQuery avec Rails
gem 'jquery-rails'
#Fonction d'adresse
gem 'jp_prefecture'

(4) Après avoir ajouté la colonne suivante au modèle utilisateur, $ rails db: migrate``` dans le terminal.

Terminal


rails generate migration AddColumnsToUsers postal_code:string prefecture_code:string address_city:string address_street:string

(5) Ajoutez ce qui suit à app / models / user.rb pour modifier le modèle utilisateur.

user.rb


  include JpPrefecture
  jp_prefecture :prefecture_code

  def prefecture_name
    JpPrefecture::Prefecture.find(code: prefecture_code).try(:name)
  end

  def prefecture_name=(prefecture_name)
    self.prefecture_code = JpPrefecture::Prefecture.find(name: prefecture_name).code
  end

(6) Ajoutez ce qui suit à la vue à afficher (Cet article est implémenté sur l'écran d'inscription des nouveaux membres en introduisant devise) Description supplémentaire dans app / views / devise / registrations / new.html.erb

ruby:new.html.erb



<%= f.label :Code postal%>
<%= f.text_field :postal_code, autocomplete: "postal_code", id: "customer_postal_code" %>

<%= f.label :Préfectures%>
<%= f.collection_select :prefecture_code, JpPrefecture::Prefecture.all,  :name, :name, autocomplete: "prefecture_code", id: "customer_prefecture_code" %>

<%= f.label :Municipalité%>
<%= f.text_field :address_city,  autocomplete: "address_city", id: "customer_address_city" %>

<%= f.label :Tas de rue%>
<%= f.text_field :address_street,  autocomplete: "address_street", id: "customer_address_street" %>

(7) Décrit dans app / assets / javascripts / user.coffee pour appeler la méthode jpostal.

user.coffee


$ ->
  $("#user_postcode").jpostal({
    postcode : [ "#user_postcode" ],
    address  : {
                  "#user_prefecture_code" : "%3",
                  "#user_address_city" : "%4",
                  "#user_address_street" : "%5%6%7"
                }
  })
  #Format de l'élément d'entrée
    #   %3 préfectures
    #   %4 communes
    #   %5 zone urbaine
    #   %6 Adresse du grand bureau
    #   %7 Nom du grand bureau

(8) Description supplémentaire ci-dessous dans app / controllers / users_controller.rb

users_controller.rb


  private
  def user_params
    params.require(:user).permit(:postcode, :prefecture_code, :address_city, :address_street) #Colonnes qui permettent le stockage
  end

Après avoir saisi le code postal, l'adresse sera saisie automatiquement.

Supplément

Si le code postal n'est pas saisi automatiquement à moins que l'écran ne soit remplacé par l'écran de réglage de la saisie automatique d'adresse et rechargé, l'ajout de données: {"turbolinks" => false} à la description du lien a résolu le problème.

<%= link_to 'Inscription des membres', '/customers/sign_up',  data: {"turbolinks" => false} %>

Il a fallu environ 20 minutes pour le mettre en œuvre pour la première fois. Nous espérons pour votre référence.

Recommended Posts

Ruby on Rails Comment implémenter la saisie d'adresse automatique
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on Rails] Méthode d'aide pratique
[Rails] Implémentation de la saisie d'adresse automatique avec jpostal et jp_prefecture
Méthode d'installation de Ruby on Rails [édition Mac]
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
[Ruby on rails] Implémentation d'une fonction similaire
Implémentation de la fonction de connexion Ruby on Rails (Session)
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
Résumé des méthodes de mise à jour de plusieurs colonnes [Ruby on Rails]
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
Ruby on Rails Résumé des exemples de méthodes de refactoring autour de MVC
[Ruby on Rails] Fonction de recherche (modèle, formule de sélection de méthode)
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
Record d'apprentissage Ruby on rails-2020.10.07 ①
[Ruby] Notes sur la méthode gets
Record d'apprentissage de Ruby on rails -2020.10.06
Résumé de la validation Ruby on Rails
Mémorandum de base Ruby on Rails
Ruby on Rails Paramètre de la fonction d'envoi automatique des e-mails (avec Gmail)
[Ruby on Rails] méthode indéfinie ʻid'for nil: méthode de résolution d'erreur NilClass
Recherche d'enregistrements Ruby on Rails, création sinon méthode find_or_create_by
[Ruby on Rails] Saisissez automatiquement une adresse à partir d'un code postal
[Ruby on Rails] Read try (: [] ,: key)
Variables Ruby on Rails, résumé constant
Installation de Ruby + Rails sur Ubuntu 18.04 (rbenv)
[Ruby on Rails] Introduction de la fonction de pagination
Connaissance de base de Ruby on Rails
Progatez Ruby on Rails
Comment utiliser Ruby on Rails
Ruby on Rails compatible japonais-anglais i18n
(Ruby on Rails6) "Effacer" le contenu publié
[Ruby on Rails] Fonction de sortie CSV
Mémo de construction de l'environnement Ruby on Rails 6.0
[Ruby on Rails] Création de la page de confirmation
[Ruby on Rails] DM, fonction de chat
[Ruby on Rails] Arrêtez de "boucler jusqu'à ce que ..."
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Fonction de recherche (non sélectionnée)
[Rails] Ajout de la fonction de commentaire Ruby On Rails