Skip to content

Instantly share code, notes, and snippets.

@alainravet
Forked from jopotts/default_values.rb
Created March 27, 2014 17:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alainravet/9813030 to your computer and use it in GitHub Desktop.
Save alainravet/9813030 to your computer and use it in GitHub Desktop.
module DefaultValues
def has_default_values(default_values = {})
cattr_accessor :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