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.

Written byVishal Telangre
Related blogs
- 01Rails 5.2 DSL for configuring Content Security PolicyOctober 23, 2018 · Sushant Mittal
- 02Rails 5.2 stops some raw SQL, prevents SQL injectionsOctober 16, 2018 · Piyush Tiwari
- 03Rails 5.2 added method write_multi to cache storeJuly 3, 2018 · Rohan Pujari
- 04Rails 5.2 uses AES-256-GCM authenticated encryptionJune 26, 2018 · Sushant Mittal