Devise中的自定义变量重置密码说明?

Jam*_*eil 5 ruby-on-rails mailer password-recovery devise

我需要能够自定义rails devise邮件程序视图以重设密码说明。

为此,我需要做两件事。

  1. 为链接指定一个自定义URL,以使其基于特定的业务逻辑作为主机/域。当用户单击“忘记密码”时,此主机和域来自浏览器中的URL(即请求对象)。因此,我在delayed_job中没有请求对象来根据需要对其进行处理,因此我需要能够在发送电子邮件的delayed_job中的某个时候执行此操作。

  2. 将自定义变量传递给邮件视图,以便我可以为视图添加其他各种逻辑,根据需要隐藏和显示位。

有人可以帮忙吗?我可以看到您可以生成邮件视图以进行设计,但是我还需要能够将各种项目传递给它。例如,我是否需要以某种方式覆盖自己的用户模型和密码控制器中的功能?

Jam*_*eil 1

所以,经过一番周折、搜索和修改……这是不可能的。所以我最终编写了自己的邮件程序并绕过控制器中的设计重置密码方法,生成我自己的重置令牌,设置我需要的变量,调用我的 usermailer.... 并将设计网址嵌入到我的邮件中以获取它单击密码重置链接后,返回呼叫设备,然后一切都很好......

我讨厌重写逻辑,但最终这是最快、最干净的解决方案。

一种几乎有效的方法是在我的用户模型上使用非 activerecord 属性来存储我需要的位,并将其“破解”到设备视图中的 @resource 中,但这样做会给设备带来一些麻烦,因此,我选择了上面的选项...