Ну, я не вижу никаких проблем с префиксными столбцами (за исключением, что это немного скучно в использовании).
В любом случае, скажем, у вас есть модель User с u_name
для name
и т. Д...
Было бы здорово сделать: User.first.name
вместо: User.first.u_name
Чтобы достичь этого, я предлагаю эту непроверенную метапрограммирование, которое вы должны поставитьв инициализаторе.
class ActiveRecord::Base
def self.pretty_columns(prefix)
skipped_columns = ["id"] #add whatever column name you want here
columns.each do |column|
column_name = column.name
unless skipped_columns.include? column_name
unprefixed_col = (column_name.scan /^#{prefix}(.*)/).flatten.first
define_method "#{unprefixed_col}" do
self.send "#{column_name}"
end
define_method "#{unprefixed_col}=" do |value|
self.send(column_name, value)
end
end
end
end
end
Затем в вашей пользовательской модели:
class User < ActiveRecord::Base
pretty_columns :u_
end