1
我試圖做一個精簡的用戶會話系統,並試圖建模它與authlogic類似。自定義用戶會話
class UserSession
attr_accessor :username
def initialize(params={})
@username = params[:username]
end
def new_record?
true
end
def self.find
return nil if session[:username].nil?
UserSession.new session[:username]
end
def save
session[:username] = username
session[:username] == username
end
def user
User.find :first, :conditions => { :username => username }
end
def destroy
session[:username] = nil
end
end
我知道這裏沒有密碼或任何東西,但讓我們暫且放在一邊。我的問題是,顯然從模型訪問會話並不容易,而且形式也不好。這導致我想知道,如果我無法訪問會話,我該如何將創建用戶會話抽象爲模型?
這與我最終改變它的方式類似,它的工作原理相當好;在這一點上,我只是好奇Authlogic是如何實現它的,因爲它看起來並不像是在控制器中放置任何邏輯。 – Karl 2010-10-20 18:55:47