rails关联上下文中的self关键字

时间:2014-01-15 05:23:15

标签: ruby

我正在使用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。谢谢!

1 个答案:

答案 0 :(得分:1)

如果您熟悉'this'关键字,那么'self'几乎完全相同,意思是“当前手头的对象”。在“正常”方法中,正如您在示例中所示,这意味着“类的实例化”,在类方法中,这意味着“类对象本身”。您也可以将其视为“我的”,然后是“关系”,所以“找到我的人际关系......”