0

我正在尝试向帖子模型添加评论。到目前为止,这是我的 comments_controller:

class CommentsController < ApplicationController

    before_action :find_post

    def index
        @comments = @post.comments.order('id')
    end

    def new
        @comment = @post.comments.new
    end

    def create
        @comment = @post.comments.build(params[:comment])
        @comment.user = current_user
        @comment.save
        redirect_to post_path(@post)
    end

    private
    def comment_params
        params.require(:comment).permit(:comment_body)
    end

    def find_post
        @user = current_user
        @post = @user.posts.find(params[:post_id])
    end
end

我收到此错误:

CommentsController 中的 NoMethodError #new undefined method `posts' for nil:NilClass

如您所见,我是编程新手。感谢帮助!:)

4

1 回答 1

1

当您未登录时,您可能会收到错误消息。find_post每次都会调用方法,因为before_action :find_post. 如果您未登录,current_user则为,nil然后您调用postsnil

于 2013-06-07T14:19:10.377 回答