tl;dr给定一个Arel::Attributes::Attribue
对象,说Model.arel_table[:created_at]
如何获得它的 SQL 类型?
背景:我正在绕过 ActiveRecord 基础设施,支持 Arel 编写一些需要真正有效生成的 SQL 报告。使用 Arel 的to_sql
方法,我正在生成最终的 SQL 并直接通过ActiveRecord::Base.connection.execute
. 但是,我需要将 SQL 转换应用于某些列(例如,更改存储在 GMT 中的时间戳的时区)。由于列数很大(并且根据用户输入而变化),我不想对这些转换进行硬编码。我想查看所选列的 SQL 类型并相应地应用转换。