gpt4 book ai didi

ruby-on-rails - Rails3 : rewrite url_for for subdomain support, 如何扩展 Action 邮件程序以使用此类 url_for

转载 作者:行者123 更新时间:2023-12-04 03:44:26 53 4
gpt4 key购买 nike

我从 Subdomain RailsCast 获取代码

module UrlHelper
def with_subdomain(subdomain)
subdomain = (subdomain || "")
subdomain += "." unless subdomain.empty?
[subdomain, request.domain, request.port_string].join
end

def url_for(options = nil)
if options.kind_of?(Hash) && options.has_key?(:subdomain)
options[:host] = with_subdomain(options.delete(:subdomain))
end
super
end
end

class ApplicationController < ActionController::Base
include UrlHelper
end

改用 url_for就可以了在 Controller 的 View 中。但是我在使用 ActionMailer 时遇到了麻烦。

我尝试使用以下内容:
class Notifier < ActionMailer::Base
include UrlHelper
end

但是 ActionMailer View 仍然使用来自 ActionDispatch::Routing::RouteSet 的旧的未修改的 url_for。

添加新 url_for 的最佳做法是什么

最佳答案

将以下代码添加到文件 app/helpers/url_helper.rb 中:

def set_mailer_url_options
ActionMailer::Base.default_url_options[:host] = with_subdomain(request.subdomain)
end

并修改文件 app/controllers/application_controller.rb 以添加:
before_filter :set_mailer_url_options

Source

关于ruby-on-rails - Rails3 : rewrite url_for for subdomain support, 如何扩展 Action 邮件程序以使用此类 url_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4188415/

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