在Rails中初始化class_attribute的正确方法是什么?

poo*_*nza 14 ruby-on-rails ruby-on-rails-3

class_attribute在Rails中初始化a的正确方法是什么?

我用这个:

class Foo < ActiveRecord::Base

  class_attribute :foobar
  self.foobar = []

  # ...

end
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但似乎对我来说看起来有点非Railsy.

lza*_*zap 8

这里描述了一切:http://apidock.com/rails/Class/class_attribute

如果单击"显示源",您将看到没有可用于设置默认值的选项.你做得对.


use*_*240 5

default今年Rails的master分支上增加了一个选项,查看:https: //github.com/rails/rails/pull/29270。通过此更改,您可以执行以下操作:

class Foo < ActiveRecord::Base
  class_attribute :foobar, default: []
end
Run Code Online (Sandbox Code Playgroud)

  • 如果有人想知道:那是针对 Rails 版本 &gt;= 5.2.0 (2认同)