Welcome to the 2000’s, self!
I’m ever so excited to be blogging at a blog that not only understands code highlighting, but doesn’t look like it was crafted by a mad scientist with cataracts in 1992. Now it looks more like it was crafted by a mad scientist without cataracts circa 2008 — which is an entirely more accurate representation of the truth.
That’s the good news.
The bad news? That I have don’t anything meaningful to report in this post.
Maybe I’ll just write some highlighted code instead.
# ---------------------------------------------------------------------------
# options[:except_list]: list of symbols that we will exclude form this copy
# options[:dont_overwrite]: if true, all attributes in from_model that aren't #blank? will be preserved
def self.copy_attributes_between_models(from_model, to_model, options = {})
return unless from_model && to_model
except_list = options[:except_list] || []
except_list << :id
to_model.attributes.each do |attr, val|
to_model[attr] = from_model[attr] unless except_list.index(attr.to_sym) || (options[:dont_overwrite] && !to_model[attr].blank?)
end
to_model.save if options[:save]
to_model
end
Hey hey hey code, you're looking quite sexy this evening -- you come around here often?