计算为所有帖子创建的评论

时间:2014-04-13 22:30:25

标签: ruby-on-rails ruby-on-rails-4

对帖子#2有1条评论。当我尝试为帖子#1创建第一个评论时,我得到了

  

/帖/ 1 /评论/ 2

在评论的索引页面上,它列出了所有帖子的相同评论,无论其ID如何。


comments_controller

def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.build(comment_params)
    @comment.user = current_user

    respond_to do |format|
      if @comment.save
        format.html { redirect_to [@post, @comment], notice: 'It was successfully created.' }
        format.json { render action: 'index', status: :created, location: @comment }
      else
        format.html { render action: 'new' }
        format.json { render json: @comment.errors, status: :unprocessable_entity }
      end
    end
  end

路由

resources :posts do
    resources :comments
end

2 个答案:

答案 0 :(得分:2)

  

在评论的索引页面上,它列出了所有帖子的相同评论,   不管他们的身份证。

您必须已定义CommentsController#index,如下所示:     def指数       @comments = Comment.all     结束 这就是为什么在评论的索引页面上,你会看到所有帖子都有相同的评论。

假设您将嵌套路由设为:

resources :posts do
  resources :comments
end

更新CommentsController#index,如下所示:

def index
  @post = Post.find(params[:post_id])
  @comments = @post.comments
end

答案 1 :(得分:0)

您应该删除数据库并重新创建它,以便从头开始计数。

rake db:drop
rake db:create

所有关于数据库中密钥(如:id)的自动增量功能。