[RUBY] [Rails] Comment afficher les prévisions météo de l'adresse enregistrée en japonais en utilisant OpenWeatherMap

Cible

ezgif.com-video-to-gif.gif

Environnement de développement

・ Rubis: 2.5.7 Rails: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Système d'exploitation: macOS Catalina

supposition

Ce qui suit a été mis en œuvre.

Présentation mince

Obtenir la clé API

1. Accédez au lien ci-dessous

OpenWeatherMap

2. Cliquez sur "Connexion"

スクリーンショット 2020-06-10 19.37.06.png

3. Cliquez sur "Créer un compte".

スクリーンショット 2020-06-10 19.37.16.png

4. Entrez les informations requises et cliquez sur «Créer un compte»

スクリーンショット 2020-06-10 19.38.07.png

5. Définissez Objectif sur «Autre» (approprié) et cliquez sur «Enregistrer»

スクリーンショット 2020-06-10 19.39.57.png

6. Cliquez sur ʻAPI keys`

スクリーンショット 2020-06-10 19.40.13.png

7. Copiez la clé

スクリーンショット 2020-06-10 19.40.40.png

8. Faire de la clé API une variable d'environnement

Implémentez de la même manière que "La clé API est convertie en variable d'environnement" dans l'article suivant.

Affichage Google Map

la mise en oeuvre

1. Ajouter une colonne

Terminal


$ rails g migration AddPrefectureToUsers prefecture:string

~_add_prefecture_to_users.rb


class AddPrefectureToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :prefecture, :string
  end
end

Terminal


$ rails db:migrate

2. Editez ʻapplication_controller.rb`

Ajoutez prefecture au paramètre strong.

applocation_controller.rb


def configure_permitted_parameters
  devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :name, :prefecture])
end

3. Modifier la vue

slim:users/show.html.slim


h3.weather-text
  = @user.prefecture

#weather

javascript:

  $(function () {
    var API_KEY = "#{ENV['OPEN_WEATHER_MAP_API']}"; //Clé API(Variable d'environnement)Vers une variable
    var city = "#{@user.prefecture}"; //Remplacez le nom de préfecture de l'utilisateur dans la variable
    //Attribuer une API pour lire la variable
    var url = 'https://api.openweathermap.org/data/2.5/forecast?q=' + city + ',jp&units=metric&APPID=' + API_KEY;

    $.ajax({
        url: url,
        dataType: 'json',
        type: 'GET',
      })
      .done(function (data) {
        var insertHTML = '';
        var cityName = data.city.name;
        $('#city-name').html(cityName);

        //Par défaut, il reçoit la météo toutes les 3 heures, donc
        //Obtenez la météo toutes les 24 heures en obtenant les données par multiples de 8
        for (var i = 0; i <= 32; i = i + 8) {
          insertHTML += buildHTML(data, i);
        }
        $('#weather').html(insertHTML);
      })
      .fail(function (data) {
        alert('Impossible d'obtenir les prévisions météorologiques');
      });
  });

  //Localisation en japonais
  function buildHTML(data, i) {
    var Week = new Array('(journée)', '(Mois)', '(Feu)', '(eau)', '(bois)', '(Argent)', '(sol)');
    var date = new Date(data.list[i].dt_txt);
    date.setHours(date.getHours() + 9);
    var month = date.getMonth() + 1;
    var day = month + '/' + date.getDate() + Week[date.getDay()];
    var icon = data.list[i].weather[0].icon;
    var html =
      '<div class="weather-report">' +
        '<img src="https://openweathermap.org/img/w/' + icon + '.png ">' +
        '<span class="weather-date">' + day + "</span>" +
        '<div class="weather-temp-max">' + 'Meilleur:' + Math.round(data.list[i].main.temp_max) + "℃</div>" +
        '<span class="weather-temp-min">' + 'Le minimum:' + Math.floor(data.list[i].main.temp_min) + "℃</span>" +
      '</div>';
    return html
  }

Recommended Posts

[Rails] Comment afficher les prévisions météo de l'adresse enregistrée en japonais en utilisant OpenWeatherMap
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
[Rails] Comment afficher les images dans la vue
Afficher les prévisions météorologiques à l'aide d'OpenWeatherMap, une API externe de Ruby
[Java] Comment afficher les jours acquis par LocalDate et DateTimeformatter en japonais
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
[Rails] Comment omettre l'affichage de la chaîne de caractères de la méthode link_to
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Obtenez les prévisions météo de Open Weather Map with Rails
Comment afficher les messages d'erreur en japonais
Comment traduire Rails en japonais en général
Comment utiliser JQuery dans Rails 6 js.erb
Comment vérifier les commandes Rails dans le terminal
[Rails] Comment convertir l'affichage de l'heure UC en affichage de l'heure japonais
[Ruby on Rails] Comment écrire enum en japonais
[Rails, JS] Comment implémenter l'affichage asynchrone des commentaires
[Rails] Comment changer le nom de colonne de la table
[Rails] Comment obtenir le contenu des paramètres forts
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
[Rails] Je souhaite afficher la destination du lien de link_to dans un onglet séparé
[Swift] Comment afficher les caractères saisis sur le Widget via UserDefaults lors de l'utilisation du WidgetKit
Comment afficher le champ de sélection de time_select toutes les 30 minutes
Comment déployer jQuery dans les applications Rails à l'aide de Webpacker
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Comment implémenter l'affichage sur une seule ligne de TextView dans le développement Android
Comment dériver le dernier jour du mois en Java
[Rails] Où faire attention dans la description de la validation
[Rails] Comment convertir l'URI de l'image envoyée par http en https lors de l'utilisation de l'API Twitter
[Rails / Routing] Comment faire référence au contrôleur dans votre propre répertoire
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
[rails] Comment afficher les informations de base de données
Comment définir l'adresse IP et le nom d'hôte de CentOS8
[Webpacker] Résumé de l'installation de Bootstrap et jQuery dans Rails 6.0
[rails] Comment afficher les informations parent dans la vue enfant dans des relations imbriquées
Comment afficher 0 sur le côté gauche de la valeur d'entrée standard
[Rails / Heroku / MySQL] Comment réinitialiser la base de données de l'application Rails sur Heroku
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
[Rails] Comment changer le titre de la page du navigateur pour chaque page
Comment supprimer de grandes quantités de données dans Rails et problèmes
Comment obtenir l'identifiant de la clé PRIMAY incrémentée automatiquement dans MyBatis
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
[Rails] Création du deuxième axe vertical et localisation japonaise dans le dessin graphique à l'aide d'amCharts4, etc.
Emplacement de la définition de la méthode Résumé de la vérification Lorsque défini dans le projet et Rails / Gem
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
[rails6.0.0] Comment enregistrer des images en utilisant Active Storage au format assistant
Comment installer Swiper in Rails
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery
Comment créer un retrait de deux espaces d'un octet dans l'implémentation JAXB du JDK
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)