【问题标题】:how to access rails helper method current_user inside rails job?如何在rails作业中访问rails helper方法current_user?
【发布时间】:2017-04-08 13:42:48
【问题描述】:

我在 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,但我无法访问设计 Rails 辅助方法。

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    设计辅助方法在 ActiveJobs 中不可用,您可以做的是将 current_user id 传递给 perform 方法,并在那里获取用户,例如

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多