我有一个包含以下代码的类:
class EventLog::EventLogBuilder
def initialize(event, params={})
@action = event
@user_id = params.fetch(:user_id) { current_user.id }
end
def save
MyModel.create(action: @action, user_id: @user_id)
end
end
当我从家庭控制器中调用该功能时:
EventLog::EventLogBuilder.new(:logout).save
我收到错误,因为我无法从控制器访问current_user:
undefined local variable or method `current_user' for #<EventLog::EventLogBuilder:0x007f9cc2981d70>
如何从控制器上下文中获取current_user?我不想将current_user传递给EventLogBuilder类,我不想在application_controller.rb中创建一个包装器方法并传递current_user。