【问题标题】:How to change URL used in accept_invitation_url dynamically in Devise Invitable?如何在设计邀请中动态更改 accept_invitation_url 中使用的 URL?
【发布时间】:2015-03-04 11:47:02
【问题描述】:

我正在使用 Devise 邀请函。我们在单个 Rails 应用程序中使用不同的子域,例如 test1.domain.com、test2.domain.com 等,并希望我们发送给用户的邀请 url 能够反映这一点。

由于该值似乎基于 config/production.rb 中的配置变量:

config.action_mailer.default_url_options = { host: 'www.domain.com' }

我不清楚更改电子邮件视图中使用的 url 的最佳方法是什么:

<%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, :invitation_token => @token) %>

我找不到 accept_invitation_url 的来源,所以我什至不确定它的设置位置。

非常感谢任何帮助!

【问题讨论】:

    标签: ruby-on-rails devise devise-invitable


    【解决方案1】:

    菜鸟失误:

    诀窍是停止尝试将其作为设计邀请问题进行搜索,而更像是一般的 ActionMailer 问题,这导致我找到了这个简单的解决方案:http://excid3.com/blog/change-actionmailer-email-url-host-dynamically/

    基本上只需使用您想要的任何逻辑重置应用程序控制器中的 url:

     before_filter :set_mailer_host
    
     def set_mailer_host
        ActionMailer::Base.default_url_options[:host] = request.host_with_port
     end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      相关资源
      最近更新 更多