February 21, 2018
This blog is part of our Rails 5.2 series.
It is very common to set a default value for a class_attribute
.
Before Rails 5.2, to specify a default value for a class_attribute
, we needed
to write like this.
class ActivityLogger
class_attribute :logger
class_attribute :settings
self.logger = Logger.new(STDOUT)
self.settings = {}
end
As we can see above, it requires additional keystrokes to set a default value
for each class_attribute
.
Rails 5.2 has added support for specifying a default value for a
class_attribute
using default
option.
class ActivityLogger
class_attribute :logger, default: Logger.new(STDOUT)
class_attribute :settings, default: {}
end
This enhancement was introduced in this pull request.
If this blog was helpful, check out our full blog archive.