我一直在努力寻找详细的Arel文档,但是徒劳无功。最后,我尝试深入挖掘源代码并想出ou
以下工作(最后注意to_sql):
Arel::Nodes::NamedFunction.new('to_char', Audit.arel_table[:created_at], 'dd-mm-yyyy').to_sql
并且,以下工作:
tzdate = Arel::Nodes::InfixOperation.new('at time zone', Arel::Nodes::InfixOperation.new('at time zone', Audits.arel_table[:created_at], 'gmt'), Time.zone.tzinfo.name)
由于TypeError: Cannot visit Arel::Nodes::InfixOperation
,以下内容不起作用(最后请注意to_sql):
Arel::Nodes::NamedFunction.new('to_char', [tzdate, 'dd-mm-yyyy']).to_sql
谁能告诉我这里发生了什么?
答案 0 :(得分:0)
这里有两个问题:
Arel.new('dd-mm-yyyy')
包装日期格式字符串(这会产生Arel::Nodes::SqlLiteral
)。Arel::Nodes::Quoted.new('UTC')
)。参见https://github.com/rails/arel/issues/323