Authlogic の Session.create! を失敗したときに Session のインスタンスを例外オブジェクトに持たせたかった。
要は ActiveRecord::RecordInvalid#record のように使いたいんでモンキーパッチで
module Authlogic module Session module Existence class SessionInvalidError < ::StandardError def initialize(session) @record = session super end def record @record end end end end end
です。
こうしてたのが
def create @user_session = UserSession.new(user_session_params) if @user_session.save redirect_to entry_index_path else render :new end end
こうなった。
def create UserSession.create!(user_session_params) redirect_to entry_index_path rescue Authlogic::Session::Existence::SessionInvalidError => e @user_session = e.record render :new end