首页 > 解决方案 > 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 个实例变量来处理所有环境。

标签: ruby-on-rails

解决方案



推荐阅读