0

本质上,我有一个可以添加评论的类别,该类别显示任务列表。当您添加评论时,您可以回复所述评论,当您这样做并悬停回复链接时,您会看到类似于:

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 传递给表单。

4

3 回答 3

0

has_ancestry在你的模型中定义了吗?我认为没有它会有一个有效的解释,这不起作用。

于 2012-09-14T15:45:37.577 回答
0

试试这个:

<%= link_to 'Reply', new_category_category_comment_path(@category.id, :parent_id => category_comment.id)%>
于 2012-09-14T15:46:18.830 回答
0

这有点神奇地固定了它的自我。我不知道发生了什么或发生了什么,但它现在神奇地起作用了>。>

于 2012-09-14T18:55:31.317 回答