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.