我正在使用rails教程并且遇到过这段代码。我无法理解这个上下文中的self关键字可以做什么。根据我的理解,self关键字是一种创建属于其创建对象的类函数的方法,但我真的不明白这意味着什么。
代码如下:
class User < ActiveRecord::Base
def feed
end
def following?(other_user)
self.relationships.find_by(followed_id: other_user.id)
end
def follow!(other_user)
self.relationships.create!(followed_id: other_user.id)
end
end
任何人都可以对此进行相当直观的解释吗?我熟悉其他语言的'this'关键字,但这似乎是rails magic。谢谢!
答案 0 :(得分:1)
如果您熟悉'this'关键字,那么'self'几乎完全相同,意思是“当前手头的对象”。在“正常”方法中,正如您在示例中所示,这意味着“类的实例化”,在类方法中,这意味着“类对象本身”。您也可以将其视为“我的”,然后是“关系”,所以“找到我的人际关系......”