【发布时间】:2011-01-19 14:54:34
【问题描述】:
我正在学习 Michael Hartl 教程,但我卡在第 9 章。
我需要这个功能才能工作:
def 已登录? !当前用户 结束
但是这个函数总是返回 false 即使我登录了。 我很抱歉这个简单的问题, 但我是一个初学者,也花了很长时间 时间试图弄清楚。 我正在使用 ruby 1.8.7 和 rails 2.3.8
先谢谢了!
【问题讨论】:
标签: ruby-on-rails
我正在学习 Michael Hartl 教程,但我卡在第 9 章。
我需要这个功能才能工作:
def 已登录? !当前用户 结束
但是这个函数总是返回 false 即使我登录了。 我很抱歉这个简单的问题, 但我是一个初学者,也花了很长时间 时间试图弄清楚。 我正在使用 ruby 1.8.7 和 rails 2.3.8
先谢谢了!
【问题讨论】:
标签: ruby-on-rails
我怀疑代码应该读取
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。
【讨论】:
current_user 以及您呼叫的位置signed_in?。那里可能有问题。
您必须添加一个 .nil 吗?像这样给 current_user:
def signed_in?
!current_user.nil?
end
【讨论】:
我有一个类似的问题,并决定向后工作。
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 拼写错误,然后解决了它。
【讨论】: