🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

Что делает deliver! в Rails 3

September 28, 2011 in Ruby on Rails

Потратил некоторое время на поиск неполадки в premailer-rails3 - гем, который “разворачивает” определения стилей в письмах. Наконец, нашел причину.

Собственно, мы также используем гем resque_mailer – он откладывает отправку почты в очередь Resque. Так вот, чтобы избежать отложенной отправки, я использова вместо Mail::Message#deliver метод Mail::Message#deliver!, и он отправлял почту немедленно. Что мне и нужно было.

Так вот, оказалось, что метод deliver! отправляет почту без вызова любых сторонних обработчиков – то есть, и resque_mailer-а, и premailer-rails3-а. Вот поэтому-то премейлер и не срабатывал!

Мораль: метод deliver! почти никогда не бывает полезен на практике. Можешь грепнуть его по своему проекту и раздать блеймов.

Buy me a coffee Понравился пост? Купи мне кофе