Skip to content

Instantly share code, notes, and snippets.

@vinhnglx
Forked from jopotts/default_values.rb
Created May 23, 2014 03:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinhnglx/e7980e57a434fa22ace0 to your computer and use it in GitHub Desktop.
Save vinhnglx/e7980e57a434fa22ace0 to your computer and use it in GitHub Desktop.
module DefaultValues
def has_default_values(default_values = {})
class_attribute :default_values
self.default_values = default_values
after_initialize :assign_default_values
include InstanceMethods
end
module InstanceMethods
private
def assign_default_values
return unless new_record?
default_values.each do |key, value|
self[key] = value if self[key].nil?
end
end
end
end
# In config/initializers
ActiveRecord::Base.extend DefaultValues
# Example usage
class SomeModel < ActiveRecord::Base
has_default_values(
title: "Default",
flag_yn: false
)
..
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment