rails 3 + devise:on after_inactive_sign_up_path_for()如何显示尚未确认的用户的电子邮件地址?

时间:2011-05-29 07:49:15

标签: ruby-on-rails devise

为了有一个注册后的页面,我添加了一个RegistrationsController和方法来提供一个自定义页面,告诉用户检查他们的电子邮件是否有帐户确认链接。

  def after_inactive_sign_up_path_for(resource)
    "/awaiting_confirmation"
  end

该页面上是否有任何方式(创建帐户的用户可以看到,但尚未确认,但尚未登录)以显示他们用于创建帐户的电子邮件地址。

我希望该页面说“我们刚刚在useremail@userdomain.com上向您发送了确认链接”

但该页面的视图无法显示current_user.email,因为current_user为nil,因为它们尚未登录。

是否有其他设计变量或会话变量包含刚刚创建的注册信息?

2 个答案:

答案 0 :(得分:2)

这是我们如何解决它...这很容易。

将我的自定义注册控制器中的单行控制器方法(在我的问题中显示)修改为:

"/awaiting_confirmation?email=#{resource.email}"

然后在route / awaiting_confirmation的接收方法中我只做

@email = params[:email]

并在我的视图中显示@email变量。

答案 1 :(得分:1)

您可以通过两种方式执行此操作,第一种方法是在成功发送电子邮件后向用户显示Flash消息。您仍然可以在变量中访问用户电子邮件,例如:

:notice => "Email was sent to #{userobject.email}"

或者您可以将此对象传递到您在注册后将用户发送到的页面并在那里使用它。

您可以解决此问题的另一种方法是使用令牌对用户进行身份验证,然后用户将有效登录,然后您可以使用current_user。 为此,您需要查看single use token authentication并设计。