mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
1ac40f16c5
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`. |
||
---|---|---|
.. | ||
attributes | ||
collectors | ||
nodes | ||
visitors | ||
alias_predication.rb | ||
crud.rb | ||
delete_manager.rb | ||
errors.rb | ||
expressions.rb | ||
factory_methods.rb | ||
insert_manager.rb | ||
math.rb | ||
nodes.rb | ||
order_predications.rb | ||
predications.rb | ||
select_manager.rb | ||
table.rb | ||
tree_manager.rb | ||
update_manager.rb | ||
visitors.rb | ||
window_predications.rb |