[RUBY] [Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an

Ziel

ezgif.com-video-to-gif.gif

Entwicklungsumgebung

・ Ruby: 2.5.7 Schienen: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Betriebssystem: macOS Catalina

Annahme

Folgendes wurde implementiert.

Schlanke Einführung

API-Schlüssel abrufen

1. Greifen Sie auf den unten stehenden Link zu

OpenWeatherMap

2. Klicken Sie auf "Anmelden"

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

3. Klicken Sie auf "Konto erstellen"

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

4. Geben Sie die erforderlichen Informationen ein und klicken Sie auf "Konto erstellen"

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

5. Setzen Sie Purpose auf other (entsprechend) und klicken Sie auf Save

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

6. Klicken Sie auf "API-Schlüssel"

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

7. Kopieren Sie den Schlüssel

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

8. Konvertieren Sie den API-Schlüssel in eine Umgebungsvariable

Implementieren Sie auf die gleiche Weise wie "API-Schlüssel wird in Umgebungsvariable konvertiert" im folgenden Artikel.

Google Map-Anzeige

Implementierung

1. Spalte hinzufügen

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. Bearbeiten Sie application_controller.rb

Fügen Sie dem starken Parameter "Präfektur" hinzu.

applocation_controller.rb


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

3. Ansicht bearbeiten

slim:users/show.html.slim


h3.weather-text
  = @user.prefecture

#weather

javascript:

  $(function () {
    var API_KEY = "#{ENV['OPEN_WEATHER_MAP_API']}"; //API-Schlüssel(Umgebungsvariable)Zu einer Variablen
    var city = "#{@user.prefecture}"; //Ersetzen Sie den Präfekturnamen des Benutzers durch die Variable
    //Weisen Sie der Lesevariablen eine API zu
    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);

        //Standardmäßig wird das Wetter alle 3 Stunden angezeigt
        //Ermitteln Sie das Wetter alle 24 Stunden, indem Sie die Daten in Vielfachen von 8 abrufen
        for (var i = 0; i <= 32; i = i + 8) {
          insertHTML += buildHTML(data, i);
        }
        $('#weather').html(insertHTML);
      })
      .fail(function (data) {
        alert('Wettervorhersage konnte nicht abgerufen werden');
      });
  });

  //Lokalisierung ins Japanische
  function buildHTML(data, i) {
    var Week = new Array('(Tag)', '(Mond)', '(Feuer)', '(Wasser)', '(Holz)', '(Geld)', '(Boden)');
    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">' + 'Beste:' + Math.round(data.list[i].main.temp_max) + "℃</div>" +
        '<span class="weather-temp-min">' + 'Minimum:' + Math.floor(data.list[i].main.temp_min) + "℃</span>" +
      '</div>';
    return html
  }

Recommended Posts

[Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
[Schienen] So zeigen Sie Bilder in der Ansicht an
Zeigen Sie die Wettervorhersage mit OpenWeatherMap an, einer externen API in Ruby
[Java] Anzeigen der von LocalDate und DateTimeformatter erfassten Tage auf Japanisch
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
Holen Sie sich Wettervorhersage von Open Weather Map with Rails
So zeigen Sie Fehlermeldungen auf Japanisch an
Wie man Rails allgemein ins Japanische übersetzt
Verwendung von JQuery in Rails 6 js.erb
So überprüfen Sie Rails-Befehle im Terminal
[Rails] So konvertieren Sie die UC-Zeitanzeige in die japanische Zeitanzeige
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
[Rails, JS] So implementieren Sie die asynchrone Anzeige von Kommentaren
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Rails] So erhalten Sie den Inhalt starker Parameter
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
[Swift] So zeigen Sie die eingegebenen Zeichen im Widget über UserDefaults an, wenn Sie das WidgetKit verwenden
So zeigen Sie das Auswahlfeld von time_select alle 30 Minuten an
So stellen Sie jQuery in Rails-Apps mit Webpacker bereit
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
So implementieren Sie eine einzeilige Anzeige von TextView in der Android-Entwicklung
So leiten Sie den letzten Tag des Monats in Java ab
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
[Rails] So konvertieren Sie den URI des von http gesendeten Bildes in https, wenn Sie die Twitter-API verwenden
[Rails / Routing] So verweisen Sie auf den Controller in Ihrem eigenen Verzeichnis
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Rails] Anzeigen von Datenbankinformationen
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
[Webpacker] Zusammenfassung der Installation von Bootstrap und jQuery in Rails 6.0
[Rails] So zeigen Sie übergeordnete Informationen in der untergeordneten Ansicht in verschachtelten Beziehungen an
So zeigen Sie 0 auf der linken Seite des Standardeingabewerts an
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
So löschen Sie große Datenmengen in Rails und Bedenken
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
[Rails] Erstellung der zweiten vertikalen Achse und japanische Lokalisierung beim Zeichnen mit amCharts4 usw.
Speicherort der Methodendefinition Zusammenfassung der zu überprüfenden Informationen Wenn im Projekt und in Rails / Gem definiert
So ermitteln Sie die Länge einer Audiodatei mit Java
So erhöhen Sie den Wert von Map in einer Zeile in Java
[rails6.0.0] Speichern von Bildern mit Active Storage im Assistentenformat
So installieren Sie Swiper in Rails
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
So stellen Sie das Bild mithilfe der Symbolschriftart (Symbole) links / rechts von der Schaltfläche auf zeichnbar ein
[Ruby on Rails] Beim ersten Anmelden ・ So teilen Sie den Bildschirm mit jQuery in zwei Hälften
So machen Sie den Einzug zu zwei Einzelbyte-Leerzeichen in der JAXB-Implementierung des JDK
So dekorieren Sie CSS auf Rails6 form_with (Hilfs-) Optionsfeldern
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)