我正在关注迈克尔·哈特尔的教程,我在第9章陷入困境。
我需要这个功能才能工作:
def signed_in? !当前用户 端
但此函数始终返回false 即使我记录了 对不起这个简单的问题我很抱歉 但我是一个乞丐,也花了很长时间 时间试图搞清楚。 我正在使用ruby 1.8.7和rails 2.3.8
先谢谢!
答案 0 :(得分:1)
我怀疑代码应该是
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 :(得分:1)
你必须添加一个.nil?像current_user这样:
def signed_in?
!current_user.nil?
end
答案 2 :(得分:0)
我有类似的问题,并决定倒退。
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
。对我来说,令牌拼写错误并修复了它。