2017-04-08 39 views
2

我有以下代碼Rails的工作中:如何在rails作業中訪問rails helper方法current_user?

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的helper方法。

回答

4

設計輔助方法在ActiveJobs中不可用,您可以改爲將current_user標識傳遞給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 
相關問題