Mise en œuvre de la fonction de classement par étoiles en utilisant raty sur rails6.
Tout d'abord, mettez Jquery https://qiita.com/masahisa/items/eaacb0c3b82f4a11fc13
Veuillez introduire jquery en faisant référence à cela. Devenir rails6 Il est facile d'oublier la description de $ yarn add jquery, alors soyez prudent.
Enregistrer l'image d'étoile depuis github https://github.com/wbotelhos/raty/tree/master/lib/images Enregistrez ceci dans l'application / les actifs / les images.
Copiez également le code javascript de github Puisqu'il n'y a pas de dossier appelé app / assets / javascripts dans rails6, Créez un dossier appelé javascripts dans app / assets. Créez un fichier aplication.js en dessous et collez-y tout le code copié à partir de github.
dans app / assets / config / manifest.js
//= link_directory ../javascripts .js
Ajouter.
dans app / layouts / application.html.erb
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
Ajouter.
Il s'agit du paramètre d'environnement. Veuillez noter que la méthode est très différente sauf pour les rails6. (Je ne sais pas si cette méthode est correcte même en 6, mais j'ai pu la lire avec ça.)
Implémentation des fonctions suivantes.
Colonne de taux ajouté
rails g migration AddRateToEvaluations rate:float ↓ rails db:migrate
Sous la forme de la vue, vous souhaitez ajouter une fonction de classement par étoiles
<div class="form-group row" id="star">
<% = f.label: rate, 'Évaluation complète', classe: 'col-md-3 col-form- label' %> <%= f.hidden_field :rate, id: :review_star %>
<! - Évaluation javascript->
Décris. Le but est de définir review_star pour id dans hidden_field. Chargez l'image étoile enregistrée dans la partie Js.
N'oubliez pas d'autoriser le paramètre de taux sur le contrôleur. Vous devriez maintenant être prêt à taper avec une étoile.
Pour le moment, je vais également inclure le code qui affiche les données saisies. Dans mon cas, il y a une colonne de commentaires dans le tableau des évaluations, et le modèle de publication et le modèle d'utilisateur sont associés l'un à l'autre, veuillez donc l'utiliser comme référence uniquement.
<tbody>
<% @evaluations.each do |evaluation| %>
<tr>
<td><%= evaluation.comment %></td>
<td>
<a href="/users/<%= evaluation.user.id %>">
<%= evaluation.user.nickname %>
</a></td>
<! - Classement par étoiles->
<% end %>
<! - / Classement par étoiles->
</tr>
c'est tout.
https://gyazo.com/4e0cd5b4b5dc11d134bc65e6a7b7db74
C'est l'image. Il n'y a pas d'article sur les rails6, et je l'ai fait de force en référence à des articles autres que 6, donc je pense que la bonne réponse est différente.
Recommended Posts