Код обидчика о том, почему вы не можете это сделать, находится здесь:
# actionpack/lib/action_view/helpers/asset_paths.rb, line 27
def compute_public_path(source, dir, ext = nil, include_host = true)
# More code up here....
if controller && include_host
has_request = controller.respond_to?(:request)
source = rewrite_host_and_protocol(source, has_request)
end
end
Вот файл обидчика на GH: https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/asset_paths.rb
Поскольку в шаблоне ActionMailer View отсутствует контроллер, вы не получите команду для перезаписи на основе asset_host. Вероятно, это должен быть билет, открытый основной команде Rails.
Вы можете попробовать следующий конфиг и посмотреть, поможет ли он:
config.action_mailer.default_url_options = {:host=>"localhost", :port=>3000, :protocol=>"http://"}
Я почти уверен, что это сработает только для url_for
.