所以,我正在研究一个项目,我不知道 self。在这个环境中做了什么:
def owner_is?(user)
self.user_id == user.id
end
我理解def self.method的作用,因为它是一种类方法,但不是上面使用的方法。
为什么有人会在上面的上下文中使用self.user_id,这是做什么的?我的猜测是,self指的是current_user?
请帮我解决此问题,
谢谢!
答案 0 :(得分:3)
self
指的是您正在查看的任何内容的当前实例。
这里调用实例的user_id
方法,可能是:
attributes[sym]
,绕过生成或自己的访问者。这是显着的区别吗?这真的取决于。 最安全下注是使用self
为持久字段访问者添加前缀,以确保您获得您认为自己的内容,特别是如果您覆盖任何这些访问者。
如果不是作业,我并不总是这样做,但是存在相关的风险。
答案 1 :(得分:3)
self 是指模型的当前实例。它用于当前模型的调用方法和属性。
答案 2 :(得分:1)
这将引用调用此方法的模型实例。
答案 3 :(得分:0)
.self
指的是它被调用的对象。