紅寶石寶石BCrypt有一個如何使用它的模塊之一的例子。從文檔摘自:使用實例變量&self.variable
爲什麼我們會用實例變量@password
在所有的時候,我們有self.password_hash
屬性?我覺得我錯過了一些東西,可能是因爲我對ruby沒有經驗。就個人而言,我會完成我所相信的是相同的搭配:
def password
self.password_hash ||= Password.new(self.password_hash)
end
def password=(new_password)
self.password_hash = Password.create(new_password)
end
我開始回答 - 但後來意識到,你是對的,這有點奇怪。我想我們必須調查周圍的環境才能找出'@ password'和'#password_hash'之間的區別。我認爲你的方法可行,但有時可能會有其他副作用,要求允許這兩種方法有所不同。我唯一可以肯定的是'@ password'總是一個Password實例,但它似乎'#password_hash' _can be_,但不會顯示爲_always將會是__。有沒有一種方法可以調用'#password_hash ='? – Matt 2012-03-01 22:14:18