Kar*_*iya 2 ruby-on-rails devise
我在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
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我想传递current_user,但我无法访问设计Rails帮助方法.
小智 6
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |