当我开始学习 Ruby 时,我是从 Michael Hartl 的优秀Rails 教程开始的。我刚刚重新访问了本教程,并注意到示例应用程序代码的部分内容已被修改。在身份验证章节中,更改了两种方法:
# SessionsHelper
def sign_in(user)
...
self.current_user = user
end
def sign_out
self.current_user = nil
...
end
以前,关键字self
被省略。但该应用程序有效。所以,如果它没有坏,为什么要修复它?增加了什么价值self
,为什么要使用它?
我知道self
定义类方法而不是实例方法。在模型中, usingself
允许我们直接引用对象的属性。但我不能把这些点打成平手,看看它是如何在助手中使用的。我以前在控制器中看到过它,但我不明白我们为什么要在那里使用它。