本质上,我有一个可以添加评论的类别,该类别显示任务列表。当您添加评论时,您可以回复所述评论,当您这样做并悬停回复链接时,您会看到类似于:
http://localhost:3000/categories/2/category_comments/new?parent=6
然后我们获取该 ID,将其传递给回复论坛,然后将其分配给数据库中的祖先字符串以“嵌套”回复。问题是,父 ID 没有被传递给表单。表单的隐藏字段为空白。为什么?我们可以在下面的代码中走这个 id 应该采取的路径。
类别控制器
def show
@category = Category.find(params[:id])
@category_comment = @category.category_comments.build
end
这会在类别页面上显示评论,并将您回复的评论的 parent_id 传递给表单。
当我们点击回复时,我们会触发如下所示的category_comments#new
和方法。#create
category_comments_controller
def new
@category = Category.find(params[:category_id])
@category_comment = @category.category_comments.build(:parent_id => params[:parent_id])
end
def create
@category = Category.find(params[:category_id])
@category_comment = @category.category_comments.create(params[:category_comment].merge(:user_id => current_user.id))
if @category_comment.save
redirect_to project_category_path(@category.project, @category), :flash => {:success => 'Created comment'}
else
redirect_to :back, :flash => {:error => 'Could not create comment'}
end
end
更新:
这不再是表单问题,而是控制器问题,处理将 parent_id 传递给表单。