Dans ma base de données, il existe des noms de colonne tels que "delete" ou "listen-control", etc. Celles-ci ne pouvant pas être modifiées, je voudrais aliaser les noms afin d'éviter des problèmes dans mon application.
J'ai trouvé le code suivant mais il est obsolète (05 août 2005) et ne fonctionne pas avec Rails 3:
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
Comment puis-je alias les noms de colonnes? C'est possible?