我正在学习Michael Hartl的教程,我被困在了第9章。
我需要这个函数才能工作:
Current_user结束?!def结束
但是这个函数总是返回false,即使我已经登录了。对于这个简单的问题,我很抱歉,但我是一个乞讨者,也花了很长时间试图弄清楚它。我使用的是ruby 1.8.7和rails 2.3.8
在进阶时谢谢!
发布于 2011-01-19 23:01:24
我怀疑代码应该是这样的
def signed_in?
current_user
end将!放在current_user调用的前面可以理解为“如果不是current_user,则返回true”。
您在SessionsHelper中的代码有一个拼写错误。未在sign_in方法中保存:remember_token cookie。它应该是:
def sign_in(user)
user.remember_me!
cookies[:remember_token] = { :value => user.remember_token,
:expires => 20.years.from_now.utc }
self.current_user = user
end不是:remember_toker。
发布于 2013-08-19 09:35:02
你必须添加一个.nil?要像这样使用current_user:
def signed_in?
!current_user.nil?
end发布于 2012-02-08 08:43:58
我遇到了类似的问题,并决定向后工作。
1) def signed_in? !current_user.nil? end。所以我查找了与登录相关的current_user的声明和定义
2)这里:def sign_in(user) cookies.permanent.signed[:remember_token] = [user.id, user.salt] self.current_user = user end。对我来说,token拼写错误,这就修复了它。
https://stackoverflow.com/questions/4736673
复制相似问题