0

所以我正在尝试制作一个允许用户对特定帖子发表评论的表单。单击提交按钮后,我目前遇到问题。该条目确实已放入数据库中,但是看起来我遇到了一些路由问题。

这是我重定向到的 URL:“localhost:3000/groups/13/posts/62/comments”

提交后出现以下错误:

没有路线匹配 {:action=>"show", :controller=>"groups"}

我跑了 rake 路线来找到这个:

         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 回答