Вот несколько вариантов.
Номер один (некрасиво)
class Mailer < ActionMailer
def test(address, instance)
mail(:to=>address,
:body => 'turns out you need something here?') do |format|
details = instance.erb(:myview)
format.text { details }
format.html { markdown(details) }
end
end
end
Тогда в вашем приложении
get '/send_mail' do
Mailer.new.test('bob@example.com', self)
end
Номер два
Определите свой класс Mailer в блоке помощников вашего приложения.Это должно дать ему доступ к erb .Я сделал нечто очень похожее на обычный mail gem.За исключением того, что я определил метод, а не целый класс.Думаю, это все еще должно работать.
helpers do
class Mailer < ActionMailer
def test(address)
mail(:to=>address,
:body => 'turns out you need something here?') do |format|
details = erb(:myview)
format.text { details }
format.html { markdown(details) }
end
end
end
end
Номер три
Посмотрите на код Синатры и / или Тилта, следуйте erb вверхстек до тех пор, пока он больше не заботится об экземпляре запроса, и продублируйте его.