ActionCableでブロードキャストするために、ActionJobのテンプレートをレンダリングしようとしています。ActionCable + Devise + Pundit + ApplicationController.render
ApplicationController.render(partial: "messages/message", locals: { message: message }, assigns: { current_user: user}).squish
ほとんどの場合、これはうまくいきますが、私のテンプレートの中には、ビューの認証にPunitを使用しているものがあります。
<% if policy(message).show? %>
<%= message.body %>
<% end %>
ジョブを実行すると、エラーが発生します。
ActionView::Template::Error: Devise could not find the `Warden::Proxy` instance on your request environment.
迅速なGoogle検索は、この問題を明らかに:https://github.com/plataformatec/devise/issues/4271
チケットとのリンクに記載された一切のミドルウェアは、それを追加するために実行していないので、利用可能なENV [「看守」]はありません。
どうすれば対処できますか?回避策として
[this](http://www.thegreatcodeadventure.com/using-action-controller-renderers-in-rails-5-with-devise/)にチェックを入れましたか? –
@ArunKumarはい、それはチケットで参照されているリンクの1つでした。 –