首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Michael Hartl的Ruby on Rails教程-第9章- Ruby 2.3

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

Stack Overflow用户
提问于 2011-01-19 22:54:35
回答 3查看 773关注 0票数 0

我正在学习Michael Hartl的教程,我被困在了第9章。

我需要这个函数才能工作:

Current_user结束?!def结束

但是这个函数总是返回false,即使我已经登录了。对于这个简单的问题,我很抱歉,但我是一个乞讨者,也花了很长时间试图弄清楚它。我使用的是ruby 1.8.7和rails 2.3.8

在进阶时谢谢!

EN

回答 3

Stack Overflow用户

发布于 2011-01-19 23:01:24

我怀疑代码应该是这样的

代码语言:javascript
复制
def signed_in?
  current_user
end

!放在current_user调用的前面可以理解为“如果不是current_user,则返回true”。

您在SessionsHelper中的代码有一个拼写错误。未在sign_in方法中保存:remember_token cookie。它应该是:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-08-19 09:35:02

你必须添加一个.nil?要像这样使用current_user:

代码语言:javascript
复制
def signed_in?
    !current_user.nil?
end
票数 1
EN

Stack Overflow用户

发布于 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拼写错误,这就修复了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4736673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档