[Ruby on Rails] Devise の current_user メソッドをオーバーライド

Thu, December 6, 2012 - 2 min read

Ruby on Rails にて、Devise の current_user メソッドをオーバーライドする方法をメモ。

常にユーザの権限(Role)もまとめて取得する場合は、こんな感じに書く。

# app/controllers/application_controller.rb 
class ApplicationController < ActionController::Base
  alias_method :devise_current_user, :current_user
  def current_user
    if devise_current_user.nil?
      nil
    else
      User.find_by_id(devise_current_user.id, include: :role)
    end
  end
end

【参考】ruby on rails 3 - Where to override current_user helper method of devise gem - Stack Overflow はてなブックマーク - ruby on rails 3 - Where to override current_user helper method of devise gem - Stack Overflow