如何处理发送给用户的电子邮件中的链接,该链接指向包含私有用户特定数据的页面

时间:2011-08-31 07:16:31

标签: ruby-on-rails ruby ruby-on-rails-3 authentication devise

我在所有已发送的电子邮件中都有一个链接,该链接会将用户引导至允许他们编辑其电子邮件设置的页面。但是,如果用户在单击链接时未登录,则会引发错误(因为电子邮件设置是通过与current_user的关联完成的。)

如果用户当前未登录,我想改为显示登录页面,登录后,他们会被重定向到电子邮件设置页面。设置这个逻辑的好方法是什么?我正在使用Ruby on Rails和Devise进行身份验证。

2 个答案:

答案 0 :(得分:0)

将未经身份验证的用户重定向到登录网址,这是一个附加参数,用于保存电子邮件更改页面的网址(电子邮件中发送的网址)

答案 1 :(得分:0)

假设调用了email_settings控制器中的编辑操作,请将设计中的authenticate_user!帮助器添加为之前的过滤器。

class EmailSettingsController < ApplicationController
    before_filter :authenticate_user!, :only => [:edit, :update] 

    def edit
      //logic to pull current user email settings
    end

end

Devise将负责将用户重定向到登录页面,并在成功登录后,将用户带回电子邮件设置页面。