Ich möchte den Namen des Posters eines Kommentars in der Kommentarliste anzeigen, wenn die drei Beziehungen Benutzer, Beitrag und Kommentar wie folgt sind.
user.rb
has_many :posts
has_many :comments
post.rb
belongs_to :user
fas_many :comments
comment.rb
belongs_to :user
belongs_to :post
ruby:show.html.erb
<p>Liste der Kommentare</p>
<% @comments.each do |c| %>
<hr>
<a href="/users/#{c.user_id}"><%= c.user.name %></a>
<%= c.content %>
<% end %>
Da der Name von c.user.name zu NoMethodError wird, können die Benutzerinformationen zum Kommentar durch Hinzufügen der folgenden Zeile zu posts.controller eingefügt werden.
ruby:posts.controller.rb
def show
@comments = @post.comments.includes(:user).all
end
Recommended Posts