如何从控制器上下文中使用current_user并在我的模型中使用它?

时间:2014-08-26 01:55:01

标签: ruby-on-rails ruby

我有一个包含以下代码的类:

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。

0 个答案:

没有答案