[RUBY] [Rails] Afficher les avatars dans les messages à l'aide du stockage actif

Chose que tu veux faire

Je souhaite afficher les avatars et les noms d'utilisateurs dans l'index Posts # (ci-après dénommé chronologie)

supposition

Présentation de la devise Introduction du stockage actif Ajouter un avatar au modèle des utilisateurs

manière

Ajout de has_one_attached et de la méthode d'instance utilisateur de: avatar au modèle de publication

post.rb


class Post < ApplicationRecord
  validates :content, {presence: true, length: {maximum: 140}}
  validates :user_id, {presence: true}
    
  has_one_attached :avatar
  
  def user
    return User.find_by(id: self.user_id)
  end
end

Ajouter .user pour afficher

Ruby:index.html.erb


    <% @posts.each do |post| %>
    <div class="posts-index-item mb-20">
      <div class="posts-index-user">
        <!--avatar-->
        <div class="posts-index-img d-inline">
          <% if post.user.avatar.attached? %>
            <%= image_tag post.user.avatar, class: "avatar-index rounded-circle mx-auto" %>
          <% else %>
            <img class="avatar-index rounded-circle mx-auto" src="<%= "/images/default_user.png " %>" alt="Userimage">
          <% end %>
        </div>
        <!--username-->
        <div class="posts-index-username d-inline">
          <%= link_to post.user.username, users_show_path %>
        </div>
      </div>
      <!--content-->
      <%= link_to(post.content, "/posts/#{post.id}") %>
    </div>
  <% end %>

résultat

image.png

Résumé

La méthode user peut gérer le modèle User même dans les posts # index où les paramètres ne peuvent pas être utilisés. ⇒ Vous pouvez gérer : avatar lié au modèle utilisateur par post.user.avatar

Recommended Posts

[Rails] Afficher les avatars dans les messages à l'aide du stockage actif
[rails6.0.0] Comment enregistrer des images en utilisant Active Storage au format assistant
Japaneseize en utilisant i18n avec Rails
Créez un éditeur de démarques par glisser-déposer dans Rails 6 (à l'aide d'Active Storage, SimpleMDE et Inline Attachment)
[Rails API + Vue] Télécharger et afficher des images à l'aide du stockage actif
[Rails] Comment utiliser Active Storage
Rails Active Storage réduit les images avant le téléchargement
Implémenter des transitions de boutons à l'aide de link_to dans Rails
Traitement de NameError: constante non initialisée :: Erreur analysable lors de l'installation d'Active Storage dans Rails6
Créer une fonction d'authentification dans l'application Rails à l'aide de devise
Implémenter un bouton de partage dans Rails 6 sans utiliser Gem
[Rails] Exécutez LINE Bot dans un environnement local à l'aide de ngrok
[Rails] Afficher les catégories à plusieurs niveaux dans la liste des rebuts
Mettre en œuvre la fonction de classement par étoiles en utilisant Raty dans Rails 6
Comment lier des images à l'aide de FactoryBot Active Storage
[Rails] Implémentation du diaporama d'images à l'aide de Bootstrap 3
[Rails] ActiveRecord :: HasManyThrough Order Error in Users # show
[Rails] Afficher les messages populaires au format de classement [Facile]
Présentez le stockage actif
Group_by dans Rails
Organiser les publications par ordre de likes sur Rails (classement)