所以,我正在进行一个项目,我不知道是什么。确实在这方面:在这种情况下,自己做了什么?
def owner_is?(user)
self.user_id == user.id
end
我明白高清self.method做什么,因为它是一个类的方法,但它不是如何上面使用。
为什么有人会像上面的上下文一样使用self.user_id,那是干什么的?我的猜测是,自我指的是current_user?
请帮我解决这个问题,
谢谢!
所以,我正在进行一个项目,我不知道是什么。确实在这方面:在这种情况下,自己做了什么?
def owner_is?(user)
self.user_id == user.id
end
我明白高清self.method做什么,因为它是一个类的方法,但它不是如何上面使用。
为什么有人会像上面的上下文一样使用self.user_id,那是干什么的?我的猜测是,自我指的是current_user?
请帮我解决这个问题,
谢谢!
这将引用该方法被调用的模型实例。
self
指的是您正在查看的任何当前实例。
这调用实例的方法user_id
,这可能是:
attributes[sym]
,绕过生成或您自己的访问器。难道是显着的区别?这真的取决于。下注是将持久字段访问器加上self
作为前缀,以确保您获得了自己的想法,尤其是在您覆盖任何访问者时。
我不总是这样做,当它不是一个任务,但有一个相关的风险。
.self
正在接受它被调用的对象。
干杯!它不是默认自动引用该对象 - 因为代码是用Event.rb模型编写的? – user3399101
@ user3399101是的。但是你必须确保你正在调用你真正认为你的方法,这就是为什么我评论了持久属性。 –
了解,谢谢。 +1 – user3399101
self引用模型的当前实例。它用于当前模型的调用方法和属性。
所以在这种情况下,它指的是一个Event对象的实例。因为它正在使用Event.rb模型进行调用。我想我明白了吗?干杯! – user3399101