0

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

但是,我想向已知曾经登录过的人显示登录页面,向从未登录过的用户显示注册页面。

似乎您可以使用会话和 cookie 来做一些事情,但我不清楚我将把这段代码放在哪里。

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

4

1 回答 1

1

谢天谢地,Devise 已经为您想到了这一点 :)

user.last_sign_in_ip

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

在 Rails 3 中使用 Devise 显示上次登录的详细信息

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

希望有帮助!

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

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

User.where :last_sign_in_ip => {current IP}

应该做你。您甚至不需要知道哪个用户,只要存在那个用户即可。

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

于 2013-07-09T20:48:18.823 回答