为了用户体验,我已登录并在同一页面上注册表单。
但是,我想向已知登录过的人显示登录页面,并向从未知道登录的用户显示登录页面。
这似乎是你可以用会话和cookie做的事情,但我不清楚我会把这个代码放在哪里。
(我正在使用Devise,rails 3和mongoid)
答案 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那里得到一点免费午餐。