[RUBY] [Rails] Zeigt Avatare in Posts mit Active Storage an

Was du machen willst

Ich möchte Avatare und Benutzernamen im Posts # -Index anzeigen (im Folgenden als Timeline bezeichnet).

Annahme

Devise vorstellen Active Storage eingeführt Avatar zum Benutzermodell hinzufügen

Weise

Has_one_attached und Benutzerinstanzmethode von: avatar zum Beitragsmodell hinzugefügt

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

Fügen Sie .user zur Anzeige hinzu

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 %>

Ergebnis

image.png

Zusammenfassung

Die Benutzermethode kann das Benutzermodell auch in Posts # -Index verarbeiten, in denen keine Parameter verwendet werden können. ⇒ Sie können mit : avatar umgehen, das mit dem Benutzermodell von post.user.avatar verknüpft ist

Recommended Posts

[Rails] Zeigt Avatare in Posts mit Active Storage an
[rails6.0.0] Speichern von Bildern mit Active Storage im Assistentenformat
Japanisieren Sie mit i18n mit Rails
Erstellen Sie in Rails 6 einen Drag-and-Drop-Markdown-Editor (mit Active Storage, SimpleMDE und Inline-Anhang).
[Rails API + Vue] Laden Sie Bilder mit Active Storage hoch und zeigen Sie sie an
[Rails] Verwendung von Active Storage
Rails Active Storage verkleinert Bilder vor dem Hochladen
Implementieren Sie Schaltflächenübergänge mit link_to in Rails
Umgang mit NameError: nicht initialisierte Konstante :: Analysierbarer Fehler bei der Installation von Active Storage in Rails6
Erstellen Sie die Authentifizierungsfunktion in der Rails-Anwendung mit devise
Implementieren Sie eine Freigabeschaltfläche in Rails 6, ohne Gem zu verwenden
[Rails] Führen Sie LINE Bot in einer lokalen Umgebung mit ngrok aus
[Schienen] Mehrstufige Kategorien in der Ausschussliste anzeigen
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
So verknüpfen Sie Bilder mit FactoryBot Active Storage
[Rails] Implementierung einer Bild-Diashow mit Bootstrap 3
[Rails] ActiveRecord :: HasManyThrough-Bestellfehler in Benutzer # show
[Rails] Beliebte Beiträge im Ranking-Format anzeigen [Easy]
Führen Sie Active Storage ein
Group_by in Rails
Ordne die Beiträge in der Reihenfolge ihrer Likes auf Rails an (Rangfolge)