可能是一个简单的问题,但我只是在学习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'的值?
非常感谢, 迈克尔。
答案 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])