У меня есть решение этой проблемы, но я не думаю, что это все еще лучший способ сделать это.Я пытался и все еще буду пытаться найти лучшее решение, но вот что я сделал в своем шаблоне электронной почты.Причина, по которой я добавил это в шаблон электронной почты, заключается в том, что я использую Devise, но я надеюсь придумать что-нибудь получше.
subdomain = @resource.account.subdomain
subdomain = (subdomain || "")
subdomain += "." unless subdomain.empty?
host = [subdomain, ActionMailer::Base::default_url_options[:host]].join
Теперь вы можете передать хост url_for вот так
user_confirmation_url(:host => host)