Я пытаюсь создать урезанную систему пользовательских сессий и попытался смоделировать ее так, чтобы она была похожа на 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