Skip to content

Instantly share code, notes, and snippets.

@chrise86
Forked from jopotts/default_values.rb
Created March 30, 2014 13:44
Show Gist options
  • Save chrise86/9873003 to your computer and use it in GitHub Desktop.
Save chrise86/9873003 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