为了用户体验,我在同一页面上登录和注册表格。
但是,我想向已知曾经登录过的人显示登录页面,向从未登录过的用户显示注册页面。
似乎您可以使用会话和 cookie 来做一些事情,但我不清楚我将把这段代码放在哪里。
(我正在使用 Devise、rails 3 和 mongoid)
为了用户体验,我在同一页面上登录和注册表格。
但是,我想向已知曾经登录过的人显示登录页面,向从未登录过的用户显示注册页面。
似乎您可以使用会话和 cookie 来做一些事情,但我不清楚我将把这段代码放在哪里。
(我正在使用 Devise、rails 3 和 mongoid)
谢天谢地,Devise 已经为您想到了这一点 :)
user.last_sign_in_ip
这需要使用 :trackable,这里非常详细:
在 Rails 3 中使用 Devise 显示上次登录的详细信息
如果值为 nil,则用户从未登录。我想你知道从那里去哪里。
希望有帮助!
-- 为清晰起见添加更多细节
如果你找不到当前用户的IP,那么他们还没有登录。所以搜索
User.where :last_sign_in_ip => {current IP}
应该做你。您甚至不需要知道哪个用户,只要存在那个用户即可。
现在,就像您说的那样,您也可以使用 cookie 等。不过,逻辑将以相同的方式工作;你只需从 Devise 那里得到一点免费午餐。