[RUBY] Poteaux Rails et liaison utilisateur

introduction

Je développe actuellement une application mémo. Je reçois une liste de toutes mes notes, mais d'une manière ou d'une autre Je souhaite afficher une liste contenant uniquement les mémos de l'utilisateur connecté sur la page de la liste des mémos.

Cette fois, nous l'apprendrons.

Lier les mémos et les utilisateurs

Tout d'abord, ajoutez une colonne appelée user_id à la table des notes (table de type post) pour déterminer qui a publié chaque publication.

class CreateNotes < ActiveRecord::Migration[5.2]
  def change
    create_table :notes do |t|
      t.text :title
      t.integer :user_id
      t.integer :category_id
      t.text :explanation

      t.timestamps
    end
  end
end
$ rails db:migrate:reset

Enregistrez l'identifiant de l'utilisateur qui a publié dans le mémo

Lorsque vous enregistrez le message, mettez les informations dans la colonne user_id que vous avez ajoutée précédemment. À propos de la méthode de compilation

notes.controller.rb


def create
    @note = current_user.notes.build(note_params)
    @note.save
    redirect_to notes_path
  end

Afficher uniquement les publications des utilisateurs sur la page de la liste des mémos.

 <div class='container'>
   <div class='row'>
    <h2>Liste de mémos</h2>
    <table class='table'>
      <thead>
        <tr>
          <th>Titre</th>
          <th>Catégorie</th>
        </tr>
      </thead>
      <tbody>

        <% @notes.each do |note| %>
        <% if user_signed_in? && current_user.id == note.user_id %>   #Ajouter ici
        <tr>
          <td>
            <%= link_to note_path(note) do %>
              <%= note.title %>
            <% end %>
          </td>
          <td><%= note.category.name %></td>
        </tr>
        <% end %>
        <% end %>
      </tbody>
    </table>
   </div>
 </div>

Décrit dans chaque déclaration (répétition) de la liste de mémos.

<% if user_signed_in? && current_user.id == note.user_id %> 

L'utilisateur est-il connecté avec cette description? Et vérifiez si l'identifiant de l'utilisateur connecté et l'identifiant de l'utilisateur qui a publié le mémo sont les mêmes.

Si c'est vrai, il sera affiché! Je pense que ça va!

finalement

Je pense que l'explication est difficile à comprendre, mais j'espère qu'elle sera utile. De plus, s'il y a des erreurs, je vous serais reconnaissant si vous pouviez m'apprendre.

Recommended Posts

Poteaux Rails et liaison utilisateur
Rails et données de forme
Rails valides et invalides?
[Rails] Implémenter la fonction de recherche d'utilisateurs
Rails6 Impossible de trouver l'utilisateur avec "id" = sign_out et ne peut pas se déconnecter
[Rails] nécessitent une méthode et une méthode d'autorisation
Registres du didacticiel Rails et mémorandum n ° 0
chemins de rails et méthodes d'URL
Les rails sont difficiles et douloureux!
Les rails sont difficiles et douloureux! Ⅱ
[Rails] strftime ceci et cela
Serveur Web et serveur d'applications Rails
Implémenter la fonction d'enregistrement des utilisateurs et la fonction d'enregistrement de l'entreprise séparément dans Rails concevoir
[Rails] Implémentation de la suppression logique utilisateur
[Rails] Enregistrer l'heure de début et l'heure de fin
Activer jQuery et Bootstrap dans Rails 6 (Rails 6)
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Différence entre find et find_by
[Rails] Paramètres de validation et localisation en japonais
Modèles de rails et conventions de dénomination des tables
Rails6 OmniAuth activestorage Obtenir l'image de l'utilisateur
Liaison de données avec Spark et Cassandra
Supprimez les "actifs" et les "turbolinks" dans "Rails6".
Fonction CRUD et MVC dans Rails
[Rails] Différences et utilisation de each_with_index et each.with_index
Mise à niveau de la version du projet Ruby and Rails
Considération sur les rails et l'architecture propre
[rails] Différence entre redirect_to et render