11
在整個我的申請self.
是沒有必要引用一個用戶的名字。 name
工作正常。爲什麼使用「self」訪問ActiveRecord/Rails模型屬性?
爲什麼下面的代碼需要self
才能按預期工作?
class User< ActiveRecord::Base
before_save :validate_name
def validate_name
if self.name.nil? || self.name.empty?
self.name= "Mr. No Name"
end
end
順便說一句,我知道validates_presence_of
可以用來防止保存,但我想,如果沒有名字被賦予一個默認的保存。
Rails 3.0.7。
對不起,'self.day'應該是'self.name'!我更新了這個問題。 – 2012-04-12 16:08:19
Nit:Ruby永遠不會把'x = y'作爲方法調用。它始終是一個直接變量(或常量,取決於具體情況)的分配。形式'x'(如表達式)取決於範圍內是否存在這樣一個「x」(作爲變量)。 – 2012-04-12 16:08:53
如果在解析類文件後動態添加'name'和'name =',那麼有時候'name'意味着'self.name',有時候'name'是一個局部變量? – 2012-04-12 16:10:33