Согласно вашему посту, вы создаете пустой комментарий для текущего поста:
= render 'comments/form', comment: @post.comments.build
Вот почему, когда вы выполняете итерацию на @post.comments.each
, @post
имеет один несохраненный встроенный комментарий без пользователя.
Вы можете исправить это, добавив условие вроде:
- @post.comments.each do |comment|
- unless comment.new_record?
.div
%hr
= link_to comment.user_name, user_path(comment.user_id)
...
Или вы можете добавить в свой PostsController:
def show
@comment = Comment.new
end
и изменить = render 'comments/form', comment: @post.comments.build
на = render 'comments/form', comment: @comment
Таким образом, @post.comments
пусто, и вы можете выполнить итерацию, не пропуская ошибку идентификатора.