Ruby on rails Rails自安装Desive以来没有方法错误?
我不确定它是否相关,但自从我添加Desive后,我得到一个无方法错误,如下所示。nil:NilClass的未定义方法“posts” 这是专门针对以下代码行的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
@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?