0

そこで、ユーザーが特定の投稿にコメントできるフォームを作成しようとしています。送信ボタンをクリックした後、現在問題が発生しています。エントリはデータベースに入れられますが、ルーティングの問題が発生しているようです。

リダイレクトされるURLは次のとおりです: "localhost:3000 / groups / 13 / posts / 62 /comments"

送信後に次のエラーが発生します。

{:action => "show"、:controller=>"groups"}に一致するルートはありません

私はこれを見つけるためにレーキルートを実行しました:

         group GET    /groups/:id(.:format)           groups#show

これが私のコメントコントローラーです:

class CommentsController < ApplicationController
  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(params[:comment].merge({:user_id => current_user.id}))
    redirect_to :action => :show, :controller => :groups
  end
end

コメントのフォームは次のとおりです。

                    <%= form_for([post.group, post, post.comments.build]) do |f| %>
                      <p>
                        <%= f.label :comment %><br />
                        <%= f.text_area :body, :rows => 3, :cols => 55 %>
                      </p>
                      <p>
                        <%= f.submit %>
                      </p>
                    <% end %>

誰かが間違っているかもしれないアイデアを持っていますか?URL「localhost:3000 / groups / 13 / posts / 62/comments」にリダイレクトされるのはなぜですか

ありがとう

4

1 に答える 1

1

私はします:

class CommentsController < ApplicationController
    respond_to :html

    def create
        @post = Post.find(params[:post_id])
        @comment = @post.comments.create(params[:comment]) do |comment|
            comment.user = current_user # user_id shouldn't be an attr_accessible
        end
        respond_with @comment, location: group_path(@post.group)
    end
于 2012-08-17T00:28:22.740 に答える