[RUBY] Implémentez la fonction Star Five à l'aide de l'instruction for

1. Préparez une colonne

Voici comment mettre en œuvre une note 5 étoiles sur vos articles de magasin et de repas! !! Tout d'abord, préparez une colonne pour stocker le nombre d'étoiles. Créez une colonne entière nommée star.

rails g migration AddStarToPosts star:integer

Le fichier de migration est ci-dessous.

class AddStarToPosts < ActiveRecord::Migration[5.1]
  def change
    add_column :posts, :star, :integer
  end
end

Je vais migrer.

rails db:migrate

Vérifiez le schéma de base de données dans la table posts

schema.rb



t.integer "star"

Si c'est écrit, c'est OK!

2. Modifier une nouvelle page

Nous pourrons envoyer le nombre "2" pour 2 étoiles et "5" pour 5 étoiles. Tout va bien tant que vous pouvez envoyer une valeur numérique, mais ici nous allons l'implémenter avec la radio.

html:posts/new.html.erb



<%= form_for @posts do |f| %>
  <div class="field">
  <p>
    <%= f.label :name %>
    <%= f.text_field :name %>
   
  </p>
<-!Pièce ajoutée->
  <p>
5 étoiles:
    <label><%= f.radio_button :star, 1 %> 1</label>
    <label><%= f.radio_button :star, 2 %> 2</label>
    <label><%= f.radio_button :star, 3 %> 3</label>
    <label><%= f.radio_button :star, 4 %> 4</label>
    <label><%= f.radio_button :star, 5 %> 5</label>
   </p>
<-!Jusque là->
  </div>
  <%= f.submit "POST IT!" %>
<% end %>

3. Réparez le contrôleur

Si vous utilisez une action pour recevoir un paramètre dans l'action de création, Ajoutons une colonne étoile

posts_controller.rb



private
  def post_params
    params.require(:posts).permit(:name,:star)
  end

4. Écrivez des étoiles sur la page d'index

Enfin, les étoiles sont affichées dans l'instruction for! !!

html:posts/index.heml.erb



<% @posts.each do |t| %>
   <div class="index-name">
        <%= t.name %>
   </div>
   <-!Points supplémentaires->
   <div class=“star-bar”>
   <%for i in 1..t.star do%>
        ★
   <%end%>
  </div>
   <-!Points supplémentaires->
<%end%>       

Ceci complète la fonction cinq étoiles! !!

Recommended Posts

Implémentez la fonction Star Five à l'aide de l'instruction for
Mettre en œuvre la fonction de classement par étoiles en utilisant Raty dans Rails 6
Mettre en œuvre la fonction de catégorie de produit en utilisant l'ascendance ① (Préparation)
Comment mettre en œuvre la fonction de chapelure avec Gretel
[Pour les débutants] Comment implémenter la fonction de suppression
Implémenter la fonction de catégorie en utilisant l'ancêtre
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
ne doit pas retourner dans l'instruction for
Comparez la vitesse de l'instruction for et de l'instruction for étendue.
Implémentez la fonction de recherche de correspondance partielle sans utiliser Ransuck
Flux pour implémenter la fonction de publication d'images à l'aide d'ActiveStorage
Java pour instruction
Introduisons la fonction de carte de crédit en utilisant payjp (préparation)
J'ai essayé d'utiliser la boîte à outils de migration pour les fichiers binaires d'application
J'ai essayé d'utiliser l'instruction Extended for en Java
Commande pour essayer d'utiliser Docker pour le moment
Créez un écran d'authentification de connexion à l'aide de la fonction de session