Rails - 如何将user_id插入帖子的评论?

时间:2014-02-19 00:54:29

标签: ruby-on-rails ruby ruby-on-rails-4

可能是一个简单的问题,但我只是在学习Rails并尝试将评论发布到我的数据库中。当我发布时,不会抛出任何错误,但不会创建记录。

def create

    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment].permit(:comment))

    redirect_to post_path(@post)

end

帖子和评论有典型的嵌套关系。我相信问题在我的评论表中的一个名为'user_id'的列中,该列应该存储注释与用户的关系。

如何在上面的代码中将此列设置为具有'current_user'的值?

非常感谢, 迈克尔。

2 个答案:

答案 0 :(得分:3)

结合以前的答案,试试

@post   = current_user.posts.find(params[:comment][:post_id])
@comment = @post.comments.build(params[:comment].permit(:comment))
@comment.save!

或者

@post = Post.find(params[:post_id])
@comment = @post.comments.build(params[:comment].permit(:comment))
@comment.user_id = current_user.id
@comment.save!

答案 1 :(得分:0)

假设您的表单已经提供了post_id并且您正在使用Rails Tutorial方法“current_user”,而且假设用户has_many :posts,您可以使用以下代码填充所有字段:

@post   = current_user.posts.find(params[:comment][:post_id])
@comment= @post.comments.create(params[:comment][:comment])