[英]Ruby on Rails Tutorial by Michael Hartl - chapter 9 - Ruby 2.3
我正在关注Michael Hartl教程,因此陷入了第9章。
我需要此功能才能工作:
def signed_in? !current_user结束
但是即使我已登录,此函数也始终返回false。 对于这个简单的问题,我们感到很抱歉,但是我是个初学者,并且花了很长时间尝试解决这个问题。 我正在使用ruby 1.8.7和rails 2.3.8
提前致谢!
您必须添加.nil吗? 这样给current_user:
def signed_in?
!current_user.nil?
end
我怀疑代码应该阅读
def signed_in?
current_user
end
放一个!
在对current_user
的调用之前,可以将其理解为“如果不是current_user,则返回true”。
您在SessionsHelper
中的代码有错字。 :remember_token
cookie不会在sign_in
方法中保存。 它应显示为:
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
。
我遇到了类似的问题,因此决定退后一步。
1) def signed_in? !current_user.nil? end
def signed_in? !current_user.nil? end
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
。 对我来说,令牌拼写错误,并且可以解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.