• R
    Move Arel attribute normalization into `arel_table` · 1ac40f16
    Ryuta Kamizono 提交于
    In Active Record internal, `arel_table` is not directly used but
    `arel_attribute` is used, since `arel_table` doesn't normalize an
    attribute name as a string, and doesn't resolve attribute aliases.
    
    For the above reason, `arel_attribute` should be used rather than
    `arel_table`, but most people directly use `arel_table`, both
    `arel_table` and `arel_attribute` are private API though.
    
    Although I'd not recommend using private API, `arel_table` is actually
    widely used, and it is also problematic for unscopeable queries and
    hash-like relation merging friendly, as I explained at #39863.
    
    To resolve the issue, this change moves Arel attribute normalization
    (attribute name as a string, and attribute alias resolution) into
    `arel_table`.
    1ac40f16
association_scope.rb 5.3 KB