如何访问 Rails 帮助程序方法current_user Rails Job



我在 Rails 作业中有以下代码:

class MessageBroadcastJob < ApplicationJob
  queue_as :default
  def perform(message)
   ActionCable.server.broadcast "room_channel", message: render_message(message),msg: message, user: current_user
  end
  private
  def render_message(message)
    ApplicationController.renderer.render(partial: 'messages/message', locals: { message: message})
   end
end

如您所见,我想传递current_user,但我无法访问 Design Rails 帮助程序方法。

ActiveJobs 中没有 Devise 帮助程序方法,您可以做的是将 current_user id 传递给 execute 方法,并在那里获取用户,例如

def perform(message, current_user_id)
  current_user = User.find(current_user_id)
  ActionCable.server.broadcast "room_channel", message: render_message(message),msg: message, user: current_user
end

最新更新