Цепочка следующая:
Bitcoind, при поступлении средств или же при первом подтверждении транзакции, посредством walletnotify дергает rake задачу. Та в свою очередь выполняет ряд действий с моделями базы данных. На одной из модели стоит колбек
after_commit
который создает оповещение
ActionCable.broadcast
.
Канал, который обрабатывает данное оповещение рендерит партиалы и раздает их подписчикам посредством
ApplicationController.render
. И все бы ничего, но партиалы содержат хелперы, которые задействуют
request.env
, а именно - devise (через pundit, но не суть). И от этого никуда не деться.
Ошибка выглядит следующим образом:
ActionView::Template::Error: Devise could not find the `Warden::Proxy` instance on your request environment.
Make sure that your application is loading Devise and Warden as expected and that the `Warden::Manager` middleware is present in your middleware stack.
If you are seeing this on one of your tests, ensure that your tests are either executing the Rails middleware stack or that your tests are using the `Devise::Test::ControllerHelpers` module to inject the `request.env['warden']` object for you
Я нагуглил идентичную проблему, описанную в исьюсах девайса на гитхабе, вот здесь -
https://github.com/plataformatec/devise/issues/4271
В ответ, привели две ссылки, вот эти:
https://evilmartians.com/chronicles/new-feature-in...
www.thegreatcodeadventure.com/using-action-control...
Проблема в том, что я никак не могу получить
request.env
, а соответственно и
env['warden']
для того чтобы вскормить вручную его
ApplicationController.renderer.new
Нужна помощь, самому разобраться не получилось (