ActiveRecord中表列的完整别名

时间:2014-09-22 10:13:50

标签: sql ruby-on-rails activerecord column-alias

我希望像alias_attribute之类的东西为DB中的列创建一个完整的别名。例如,我有一个包含许多名为UGLYCOLUMN的列的表。

在查询中使用它非常不舒服:

MyModel.where('UglyColumn'.upcase => 'value')

我想要某种形式:

class MyModel < ActiveRecord::Base
  awesome_alias_attribute {'UGLYCOLUMN' => :pretty_column, ...}
  ...
end

然后使用MyModel.where(pretty_column: 'value')代替MyModel.where('UglyColumn'.upcase => 'value')

此外,它必须适用于复杂查询MyModel.joins(:other_relation).where(my_models: {pretty_column: 'value'})等等。

在完美的情况下,它必须适用于所有ActiveRecord方法和属性。即如果我首先为主键awesome_alias_attribute :UGLYPRIMARYKEY, :id创建别名,那么我想说self.primary_key = :id并获利。

0 个答案:

没有答案