Ruby on rails 为什么我会得到未定义的方法“save';for nil:NilClass在rails中使用魔法身份验证时
我正在尝试修复Rails应用程序中的身份验证问题 当用户(称为成员)注册时,将引发以下错误: nil:NilClass的未定义方法“save” 这是在我的会话中。\u controller.rbRuby on rails 为什么我会得到未定义的方法“save';for nil:NilClass在rails中使用魔法身份验证时,ruby-on-rails,sorcery,Ruby On Rails,Sorcery,我正在尝试修复Rails应用程序中的身份验证问题 当用户(称为成员)注册时,将引发以下错误: nil:NilClass的未定义方法“save” 这是在我的会话中。\u controller.rb def create @member = login(params[:email], params[:password]) if @member.save session[:member_id] = @member.id auto_login(@member) redirect_
def create
@member = login(params[:email], params[:password])
if @member.save
session[:member_id] = @member.id
auto_login(@member)
redirect_to root_path, notice: "hi #{@member.name}."
else
flash.now.alert = "login fail."
render :new
end
end
def create
@member = Member.create(member_params)
if @member.save
auto_login(@member)
redirect_to profile_path(current_member)
else
render 'new'
end
end
这是在我的members\u controller.rb中
def create
@member = login(params[:email], params[:password])
if @member.save
session[:member_id] = @member.id
auto_login(@member)
redirect_to root_path, notice: "hi #{@member.name}."
else
flash.now.alert = "login fail."
render :new
end
end
def create
@member = Member.create(member_params)
if @member.save
auto_login(@member)
redirect_to profile_path(current_member)
else
render 'new'
end
end
为什么@member为零?请在您的会员身上尝试以下方法:
def create
@member = Member.new(member_params)
if @member.save
auto_login(@member)
redirect_to profile_path(current_member)
else
render 'new'
end
end
我假设当用户登录时会发生这种情况,因为我看到那里有问题。找不到这样的用户
登录
不会更改帐户,如果找不到该帐户,则肯定会返回零
:原因可能是不存在电子邮件或密码错误。这就是为什么不检查user.save
(为什么连save
一个未更改的实体都不检查?),而只检查user
(如果nil
,则跳到else
):
所以。。。总而言之:将代码放在那里提供的代码片段附近,直到它工作,并且您能够跟踪它何时中断