gpt4 book ai didi

ruby-on-rails - 如何设置 ActionMailer default_url_options 的 :host dynamically to the request's hostname?

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:58 25 4
gpt4 key购买 nike

我正在尝试设置 :host for action mailer 默认 url 选项。

我在所有环境文件中设置了以下内容

config.action_mailer.default_url_options = {
:host => "localhost"
}

我想通过提供请求主机使其更具动态性。

当我尝试通过

设置它时
config.action_mailer.default_url_options = {
:host => request.domain
}

config.action_mailer.default_url_options = {
:host => request.env["SERVER_NAME"]
}

它抛出错误...无法识别“请求”对象

有什么方法可以将其设置为请求主机,而不是通过硬编码...?

最佳答案

也可以通过在 default_url_options 哈希中设置 :host 选项来设置将在所有邮件程序中使用的默认主机

application_controller.rb 添加:

class ApplicationController < ActionController::Base
def default_url_options
{ host: request.host_with_port }
end
end

来源:https://edgeguides.rubyonrails.org/action_controller_overview.html#default-url-options

或者,您可以在从 Controller 调用邮件程序函数时传递请求

class UserMailer < ActionMailer::Base

def welcome_email(user, request)
@user = user
@url = user_url(@user, host: request.host_with_port ) # do this for each link
mail(:to => user.email, :subject => "Welcome to My Awesome Site")
end
end

来源:https://guides.rubyonrails.org/action_mailer_basics.html#generating-urls-with-named-routes

关于ruby-on-rails - 如何设置 ActionMailer default_url_options 的 :host dynamically to the request's hostname?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com