需要帮助在评论中显示用户名

时间:2016-08-08 23:55:46

标签: ruby-on-rails ruby

老实说,我不知道我做错了什么。我有帖子和用户的评论。

user.rb

has_many :comments, dependent: :destroy

post.rb

has_many :comments, dependent: :destroy

comment.rb

  belongs_to :user
  belongs_to :post

评论控制器

  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

帖子视图

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

我做错了什么? 在我的控制器中,我也尝试了@comment.user = current_user.name 在我的帖子视图中,我还尝试了<%= @comment.user.name %><%= @comment.user %>

错误:我不记得这是否与我之前遇到的错误相同,但这是我在尝试创建评论时看到的错误。

ActiveModel::MissingAttributeError in CommentsController#create

can't write unknown attribute `user_id`

@comment.user = current_user

1 个答案:

答案 0 :(得分:0)

因此,从您的错误消息中看起来您可能没有在评论表中使用您的外键user_id。

您需要运行

rails g migration AddUserToComments用户:参考