[RUBY] Les rails 6 (avec Webpacker en standard) implémentent la fonction de classement par étoiles

introduction

Étant donné que la gestion de JavaScript a changé depuis la sortie de Ruby on Rails 6.0 en août 2019, je voudrais présenter "jQuery Raty --A Star Rating Plugin" basé sur les changements (points d'achoppement).

environnement

--Langage (Ruby 2.6.5) --Cadre (Rails 6.0.3.3)

référence

la mise en oeuvre

Introduction de jQuery

Tout d'abord, installez jQuery avec Yarn.

yarn add jquery

Lors de la gestion avec Webpacker, utilisez le package Node.js.

Ensuite, dans le fichier de configuration de Webpacker, écrivez la description de l'ajout de jQuery sous gestion.

config/webpack/environment.js


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

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

Enfin, appelez jQuery.

app/javascript/packs/application.js


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

Introduction de jQuery Raty

Enregistrez l'image et le code localement à partir du site ci-dessous. https://github.com/wbotelhos/raty

Invitation de jQuery Raty

Comme précédemment, ajoutez le fichier js nouvellement créé.

app/javascript/packs/application.js


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

À ce stade, les réglages des fonctions sont terminés.

Description dans le fichier View

Après cela, écrivez comme suit dans n'importe quel fichier View que vous souhaitez implémenter.

    <div class="note note-rating", id="star">
      <h3>Une évaluation complète</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>

Les deux articles suivants sont détaillés pour la description des options et de l'affichage.

Résumé

C'était presque la première fois que j'introduisais jQuery dans Rails, donc je n'ai pas trouvé la fonction que je voulais implémenter. Dans Rails 6 et les versions ultérieures, Webpacker (un outil de gestion collective de JavaScript) est installé en standard, donc afin de l'implémenter comme vous le souhaitez, vous devez apprendre à l'implémenter et à chaque fichier dont Rails est composé. J'ai senti que c'était nécessaire.

Recommended Posts

Les rails 6 (avec Webpacker en standard) implémentent la fonction de classement par étoiles
Mettre en œuvre la fonction de classement par étoiles en utilisant Raty dans Rails 6
Implémenter la fonction d'application dans Rails
Implémenter une fonction de connexion simple dans Rails
Implémenter la fonction de téléchargement CSV dans Rails
Implémenter la fonction de recherche de publication dans l'application Rails (méthode where)
[Rails] Implémentez la fonction d'enregistrement / suppression de carte de crédit dans PAY.JP
Markdown implémenté dans Rails
Implémentez la fonction de connexion dans Rails simplement avec le nom et le mot de passe (1)
Implémenter la même fonction que C, système C ++ ("cls"); en Java
Implémentez la fonction de connexion simplement avec le nom et le mot de passe dans Rails (3)
Implémenter la fonction d'enregistrement des utilisateurs et la fonction d'enregistrement de l'entreprise séparément dans Rails concevoir
Implémenter l'authentification LTI dans Rails
[Rails] Implémenter la fonction de publication d'images
[Rails] Un moyen simple d'implémenter une fonction d'auto-introduction dans votre profil
J'ai essayé d'implémenter le traitement Ajax de la fonction similaire dans Rails
Ajoutez une fonction de recherche dans Rails.
Implémenter la fonction PHP implode en Java
[Solution] Webpacker :: Manifest :: MissingEntryError dans les rails
Implémenter un formulaire de contact dans Rails
[Rails] Comment mettre en œuvre le classement par étoiles
Les données ne sont pas enregistrées dans Rails.