我刚刚为我的帖子网址实现了friendly_id,但是创建了评论错误“无路由匹配{:action =>”show“,:controller =>”posts“,:id => nil}缺少必填项键:[:id]“
评论控制器
before_filter :authenticate_user!
def create
@comment = Comment.new(comment_params)
@comment.post_id = params[:post_id]
@comment.user_id = current_user.id
@comment.save
redirect_to post_path(@comment.post)
end
def comment_params
params.require(:comment).permit(:user_id, :body)
end
我已经测试过删除了friendly_id,这肯定会搞乱它。我认为这是因为当它正在寻找url / posts / post-id / comments时,创建注释会指向url / posts / post-name / comments(friendly_id)。
有什么想法吗?
答案 0 :(得分:1)
创建评论时,您未通过post_id
。该错误表明:id
为零,因为未发送params[:post_id]
。在评论表单中,请务必为新记录设置post_id
。