This browser does not support basic Web standards, preventing the display of our site's intended design. May we suggest that you upgrade your browser?

Web Development Code Library RailsRails aliasing of database column names

Rails aliasing of database column names

Use this code to create alias accessor methods for legacy models. This allows you to use first_name instead of something like *employee_f_name_25_char".

Usage:

class GreenPastures < ActiveRecord::Base

   alias_column "new_name" => "old_nAmE"

end

Include this code in a file in /lib

module Legacy
  def self.append_features(base)
    super
    base.extend(ClassMethods)
  end
  module ClassMethods
    def alias_column(options)
      options.each do |new_name, old_name|
        self.send(:define_method, new_name) { self.send(old_name) }
        self.send(:define_method, "#{new_name}=") { |value| self.send("#{old_name}=", value) }
      end
    end
  end
end

ActiveRecord::Base.class_eval do
  include Legacy
end
Excellence. Our Measure. Our Motto. Our Goal.