У меня возникли проблемы с реализацией драгоценного камня Delayed_Job_Active_Record в моей производственной среде с Nginx. Пользователь отправляет форму «Свяжитесь с нами», соответствующее действие контроллера вызывается Nginx, и следующая строка кода завершается ошибкой:
@contact.delay.send_contact_form
Где соответствующий метод:
def send_contact_form
ContactMailer.contact_us(self).deliver
end
Среда разработки: ОК
- На моем локальном компьютере у меня есть страницы, обслуживаемые Webrick. Все работает нормально, отложенные задания проходят через таблицу Delayed_Jobs и отправляются электронные письма.
Production Env – консоль Rails: ОК
- На сервере, если я создаю
@contact
и вызываю@contact.delay.send_contact_form
вручную, отложенное задание проходит через таблицу отложенных заданий и отправляется электронная почта.
Производственная среда — Webrick: ОК
- На сервере, если я запускаю сервер Rails Webrick, я ввожу данные для
@contact
через веб-интерфейс, а затем отправляю задание, которое проходит через таблицу отложенных заданий, и отправляется электронное письмо.
Производственная среда — Nginx: ОШИБКА
- В настоящее время приложение обслуживается Nginx.
- Если я захожу в интерфейс через Nginx и ввожу данные для
@contact
и отправляю, страница зависает. - The Production Log gives the following error on the controller action, (referencing the line above):
NoMethodError (неопределенный метод `delay' для #‹ Contact:0x000000052962b0>)
Я также подтвердил, что версии Rails, Ruby и гемов Delayed_Job_Active_Record и Daemons одинаковы в обеих средах. .
Любая помощь будет принята с благодарностью, так как я застрял на этом некоторое время. Я хочу найти решение, которое работает с Nginx и дает мне ту же функциональность, что и «Отложенная работа».
Спасибо.