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

これを試して:

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

モデルで定義しましたかhas_ancestry?私はそれを持っていないことはこれが機能していないことの正当な説明があると思います。

于 2012-09-14T15:45:37.577 に答える
0

これが魔法のように自分自身を修正した方法。どのように、何が起こったのかはわかりませんが、今では魔法のように機能します>。>

于 2012-09-14T18:55:31.317 に答える