确定用户是否已登录或创建帐户

时间:2013-07-09 20:44:09

标签: ruby-on-rails login devise user-experience

为了用户体验,我已登录并在同一页面上注册表单。

但是,我想向已知登录过的人显示登录页面,并向从未知道登录的用户显示登录页面。

这似乎是你可以用会话和cookie做的事情,但我不清楚我会把这个代码放在哪里。

(我正在使用Devise,rails 3和mongoid)

1 个答案:

答案 0 :(得分:1)

谢天谢地,Devise已经为您考虑过这个问题:)

user.last_sign_in_ip

这需要使用:trackable,这里非常详细:

Display last logged in details using Devise in Rails 3

如果值为nil,那么用户从未登录过。我想你知道从哪里去。

希望有所帮助!

- 为了清晰起见添加更多细节

如果找不到当前用户的IP,那么他们还没有登录。所以搜索

User.where :last_sign_in_ip => {current IP}

你应该做的。您甚至不需要知道哪个用户存在。

现在,就像你说的那样,你也可以使用cookies等。但逻辑可以以相同的方式工作;你只是从Devise那里得到一点免费午餐。