[RUBY] Rails 6 (standardmäßig mit Webpacker) implementiert die Sternebewertungsfunktion

Einführung

Da sich die Handhabung von JavaScript seit der Veröffentlichung von Ruby on Rails 6.0 im August 2019 geändert hat, möchte ich "jQuery Raty - Ein Sternebewertungs-Plugin" basierend auf den Änderungen (Stolperpunkten) einführen.

Umgebung

Referenz

Implementierung

Einführung von jQuery

Installieren Sie zuerst jQuery mit Yarn.

yarn add jquery

Verwenden Sie bei der Verwaltung mit Webpacker das Paket Node.js.

Schreiben Sie als Nächstes in die Webpacker-Konfigurationsdatei die Beschreibung zum Hinzufügen von verwaltetem jQuery.

config/webpack/environment.js


const { environment } = require('@rails/webpacker')
#Nachtrag
const webpack = require('webpack')

environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery',
    jquery: 'jquery/src/jquery',
  })
)
#Bisher
module.exports = environment

Rufen Sie abschließend jQuery auf.

app/javascript/packs/application.js


require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require('jquery') #Nachtrag

Einführung von jQuery Raty

Speichern Sie das Bild und den Code lokal von der folgenden Site. https://github.com/wbotelhos/raty --App / Assets / Images Verzeichnis - Bild: https://github.com/wbotelhos/raty/tree/master/lib/images --Erstelle eine neue js-Datei unter app / javascript mit einem beliebigen Namen (diesmal "raty.js") - Code: https://github.com/wbotelhos/raty/blob/master/lib/jquery.raty.js

Einladung von jQuery Raty

Fügen Sie wie zuvor die neu erstellte js-Datei hinzu.

app/javascript/packs/application.js


require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require('jquery')
require('raty') #Nachtrag

Zu diesem Zeitpunkt sind die Funktionseinstellungen abgeschlossen.

Beschreibung in Ansichtsdatei

Schreiben Sie danach wie folgt in jede View-Datei, die Sie implementieren möchten.

    <div class="note note-rating", id="star">
      <h3>Umfassende Bewertung</h3>
    </div>
    <script>
      $('#star').raty({
        size      : 36,
        starOff   : '<%= asset_path('star-off.png') %>',
        starOn    : '<%= asset_path('star-on.png') %>',
        starHalf  : '<%= asset_path('star-half.png') %>',
        scoreName : 'note[rating]',
        half      : true,
      });
    </script>

Die folgenden zwei Artikel enthalten eine Beschreibung der Optionen und der Anzeige.

Zusammenfassung

Es war fast das erste Mal, dass jQuery in Rails eingeführt wurde, daher konnte ich die Funktion, die ich implementieren wollte, nicht finden. In Rails 6 und höher ist Webpacker (ein Tool zum gemeinsamen Verwalten von JavaScript) standardmäßig installiert. Um es wie gewünscht zu implementieren, müssen Sie lernen, wie Sie es und jede Datei, aus der Rails besteht, implementieren Ich hielt es für notwendig.

Recommended Posts

Rails 6 (standardmäßig mit Webpacker) implementiert die Sternebewertungsfunktion
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
Implementieren Sie die Anwendungsfunktion in Rails
Implementieren Sie eine einfache Anmeldefunktion in Rails
Implementieren Sie die CSV-Download-Funktion in Rails
Implementieren Sie die Nachsuchfunktion in der Rails-Anwendung (where-Methode).
[Rails] Implementieren Sie die Registrierungs- / Löschfunktion für Kreditkarten in PAY.JP
Markdown in Rails implementiert
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (1)
Implementieren Sie dieselbe Funktion wie das C, C ++ - System ("cls") in Java
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (3).
Implementieren Sie die Benutzerregistrierungsfunktion und die Unternehmensregistrierungsfunktion separat in Rails devise
Implementieren Sie die LTI-Authentifizierung in Rails
[Rails] Implementieren Sie die Image-Posting-Funktion
[Rails] Eine einfache Möglichkeit, eine Selbsteinführungsfunktion in Ihrem Profil zu implementieren
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
Fügen Sie eine Suchfunktion in Rails hinzu.
Implementieren Sie die PHP-Implodierungsfunktion in Java
[Lösung] Webpacker :: Manifest :: MissingEntryError in Rails
Implementieren Sie ein Kontaktformular in Rails
[Rails] So implementieren Sie die Sternebewertung
Daten sind nicht in Rails registriert.