如果我要在具有相同环境的不同系统中启动Rails服务器,则需要获得动态主机。我如何获得主机并将其发送到邮件正文。
现在正在使用以下配置,
in config/development.rb:
config.action_mailer.default_url_options = { :host => "example.com" }
in app/mailers/notifications.html.erb :
<%= test_url(id) %>
从控制器调用mailer函数时,您可以传递请求-
class UserMailer < ActionMailer::Base
def welcome_email(user, request)
UserMailer.default_url_options[:host] = request.host_with_port #option1
@user = user
@url = user_url(@user, host: request.host_with_port ) #option2 (do this for each link)
mail(:to => user.email,
:subject => "Welcome to My Awesome Site")
end
end
在上面的代码request.host_with_port
是"example.com"
适合您的情况。
因此,以上是提供请求主机的更动态的方法,因为您可以看到从控制器调用mailer函数时可以传递请求。
这是您可以检查的来源-Generationrating-urls-in-action-mailer-views。
这也是在action-mailer-default-url-options-and-request-host处的移植,在此处标记为要阅读的答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句