Передайте хост запроса в качестве параметра методу почтового модуля, а затем передайте его из метода в представление. Так, например, ваш почтовый метод может выглядеть следующим образом (пример взят из rails docs и изменен здесь):
class UserMailer < ActionMailer::Base
default :from => "notifications@example.com"
def registration_confirmation(user, host)
@user = user
@host = host
mail(:to => user.email, :subject => "Welcome to My Awesome Site")
end
end
Вы бы назвали это так:
def some_action
UserMailer.registration_confirmation(@user, request.host).deliver
end
Тогда, на ваш взгляд, вы просто используете @host:
<style type="text/css">
body {
background: url(http://<%= @host %>/images/mainbg_repeat.jpg) top repeat-x #cfcfcf;
}
</style>
Все это при условии, что сервер изображений совпадает с сервером, выполняющим запрос. Если сервер изображений находится в другом месте, вы должны вывести здесь константу. Вы можете поместить что-то вроде этого в lib / settings.rb:
module Settings
IMAGE_HOST = 'superawesome.images.com'
end
Тогда, на ваш взгляд, вы бы просто вывели константу, например, так:
<style type="text/css">
body {
background: url(http://<%= Settings::IMAGE_HOST %>/images/mainbg_repeat.jpg) top repeat-x #cfcfcf;
}
</style>