繁体   English   中英

Michael Hartl撰写的Ruby on Rails教程-第9章-Ruby 2.3

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM