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