Ruby中的属性和base_attributes之间的区别?

Kit*_*911 6 ruby ruby-on-rails

我见过几个模型定义了一个静态方法

self.base_attributes
 {
    :object => []
 }
end 
Run Code Online (Sandbox Code Playgroud)

和其他一些模型定义静态方法

self.attributes
  @@attributes = {}
end
Run Code Online (Sandbox Code Playgroud)

属性和基本属性之间究竟有什么区别?

Mat*_*ord 1

在您的示例中,在不了解更多代码的情况下,该self.attributes方法使用类变量(@@attributes),这意味着您可以在运行时向其添加更多属性。

你的位置base_attributes是硬编码的。我怀疑你看到的是这样的:

base_attributes.merge(attributes)这也许是定义默认值的一种方式。