ruby-on-rails - Rails 6在内部创建带有令牌的链接
问题描述
在我的 API 应用程序中,我使用的是 Rails 6,在其中我覆盖了设计reset_password_instructions
以通过用户令牌传递 firebase 深度链接。
链接的构建相当复杂,在邮件中传递的整个链接应该是这样的:
https://my_app.page.link/?link=https://api.company.jobs/web/reset_password?reset_password_token=12345&apn=com.company.production&isi=1501852500&ibi=com.jobs.company&ifl=https://www.company.jobs/
所以最简单的处理方式是最丑的方式,我用的是:
class MyMailer < Devise::Mailer
PASSWORD_URL_1 = 'https://my_app.page.link/?link=https://api.company.jobs/web/reset_password?reset_password_token='
PASSWORD_URL_2 = '&apn=com.company.production&isi=1501852500&ibi=com.jobs.company&ifl=https://www.company.jobs/'
def reset_password_instructions(record, token, opts = {})
@reset_password_url = PASSWORD_URL_1 + token + PASSWORD_URL_2
super
end
end
所以reset_password_instructions
我已经通过了:
<%= link_to 'Reset password', @reset_password_url, class: 'button' %>
但这很丑陋,如何以适当的方式做到这一点?我什至不知道有什么替代方案,这些链接会根据环境而改变,所以我无法创建 6 个实例变量来处理所有环境。
解决方案
推荐阅读
- javascript - 给定动作“Movies_List”,reducer 返回 undefined
- asp.net - Option Strict 不允许使用 IEnumerable 进行后期绑定
- xml - InnerXml 替换,但只有一次
- javascript - 如何制作可配置的 npm 包
- node.js - 如何将 Node js 输出发送到 HTML 字段值
- asp.net - Asp Core net Kendo ui 无法将十进制值传递给模型
- java - 我们如何在 Java 中为 Windows 10 设置环境变量?
- java - 为什么可以在定义自身之前声明类类型(Java 中)或结构类型(C 中)?
- excel - VBA - 使用参数从 Excel 调用 Access 文件中的 SUB
- android - 在移动键盘中按下“下一个输入”键时显示离子日期时间