设备型号具有以下属性:名称、版本和全名
全称是名称+版本:
class Device < ActiveRecord::Base
def prepare
full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
end
end
当我执行以下操作时:
d = Device.new :name => "iPhone", :version => "4"
d.prepare
d.full_name # get nil
“full_name”属性我得到 nil
当我使用“自我”时,它可以工作:
class Device < ActiveRecord::Base
def prepare
self.full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
end
end
做“准备”我得到“全名”属性的“iPhone 4”。
这里的一些人告诉我,避免在类方法中使用“self”是一种很好的方式。但这带来了麻烦。
问题是 - 为什么不使用 "self" 就不能工作?