我在评论中添加用户名时未完成的方法

时间:2016-08-08 18:51:50

标签: ruby-on-rails ruby

@user.name适用于我的帖子,用户个人资料以及我网站上的其他任何位置。但是当我将它添加到用户注释中时,我得到了未定义的方法?

<p class="comment_body">
  <h2><%= @user.name %></h2>
  <%= comment.body %>
</p>

我尝试<%= user.name %>但仍然是错误。

我尝试了<%= current_user.name %>并且有效。但是,我不想显示当前用户的名字,我想查看谁发布评论的用户名。

编辑:

我忘了将用户与评论联系起来,但我不确定如何。

评论控制器

class CommentsController < ApplicationController
  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment].permit(:body))

    redirect_to post_path(@post)
  end
end

我进入了我的comments.rb并写了belongs_to :user并在我的user.rb中添加了has_many :comments

1 个答案:

答案 0 :(得分:0)

那么,如果你设置用户并保存评论,不应该吗?尝试像

这样的东西
def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment].permit(:body))
    @comment.user = current_user
    if @comment.save
      redirect_to post_path(@post)
    else
      # something else
    end
end