Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails自安装Desive以来没有方法错误?_Ruby On Rails_Ruby_Devise - Fatal编程技术网

Ruby on rails Rails自安装Desive以来没有方法错误?

Ruby on rails Rails自安装Desive以来没有方法错误?,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我不确定它是否相关,但自从我添加Desive后,我得到一个无方法错误,如下所示。nil:NilClass的未定义方法“posts” 这是专门针对以下代码行的 @post = current_user.posts.build 我被困在这里,因为我已经检查了所有明显的错误,除非我删除代码,使其可读 @post = Post.new 否则,我无法添加新帖子。我在下面添加了完整的代码。 发布控制器 class PostsController < ApplicationController be

我不确定它是否相关,但自从我添加Desive后,我得到一个无方法错误,如下所示。nil:NilClass的未定义方法“posts” 这是专门针对以下代码行的

@post = current_user.posts.build
我被困在这里,因为我已经检查了所有明显的错误,除非我删除代码,使其可读

@post = Post.new
否则,我无法添加新帖子。我在下面添加了完整的代码。 发布控制器

class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]

def index
    @posts = Post.all.order("created_at DESC")
end

def show
end

def new
    @post = current_user.posts.build
end

def create
    @post = current_user.posts.build(post_params)

    if @post.save
        redirect_to @post
    else
        render 'new'
    end
end

def edit
end

def update
    if @post.update(post_params)
        redirect_to @post
    else
        render 'edit'
    end
end

def destroy
    @post.destroy
    redirect_to root_path
end

private

def find_post
    @post = Post.find(params[:id])
end

def post_params
    params.require(:post).permit(:title, :content)
end
end
代码看起来不错

但是如果没有用户登录会发生什么? 尝试添加

或问

user_signed_in?
在尝试访问登录用户之前。

代码看起来正常

但是如果没有用户登录会发生什么? 尝试添加

或问

user_signed_in?

在尝试访问登录用户之前。

需要了解您是如何集成设备的。但是是的,可能您没有登录,这就是为什么
nil
错误。

需要查看您是如何集成设备的。但是是的,也许你没有登录,这就是为什么
nil
错误。

没有用户登录,所以
当前用户
为零。显然没有用户登录。你登录了吗?CSRF令牌设置是否正确?没有用户登录,因此当前用户为零。显然没有登录用户。你登录了吗?CSRF令牌设置正确吗?@Emma在使用ruby gems之前一定要阅读文档,这会使您的工作更轻松,您不会遇到这样的困难。@Emma在使用ruby gems之前一定要阅读文档,这会使您的工作更轻松,您不会遇到这样的困难。
%h1 New Post

= render 'form'
before_action :authenticate_user!
user_signed_in?