所以,我正在進行一個項目,我不知道是什麼。確實在這方面:在這種情況下,自己做了什麼?
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