我正在玩http://railscasts.com/episodes/250-authentication-from-scratch并在尝试进行一些重构时遇到了问题。
该应用程序只需设置以下内容即可登录用户:
session[:user_id] = user.id
目前这位于控制器中。我只想在 User 对象上有两种方法。一种称为登录,一种称为注销。这意味着如果我更改登录的实现,那么只有一个地方可以更改代码,并且使其更具可读性。最简单的解决方案显然是将其添加到用户模型中:
def login
session[:user_id] = user.id
end
众所周知,在 Rails 模型中无法访问会话。我们显然可以在应用程序控制器上创建这两个方法并传入用户对象,但这看起来有点难看,实现这个简单用例的推荐方法是什么?