Arel,嵌套的 NamedFunction
Arel, nested NamedFunction
我正在尝试通过 Arel 编写此查询:
SELECT ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) FROM Table1
使用http://www.scuttle.io/它return一个简单的:
Table1.select(
Arel::Nodes::NamedFunction.new(
'ROUND', [
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
) * 1000
]
)
)
但我的 rails 应用程序不接受它,给我:
NoMethodError (undefined method `*' for #<Arel::Nodes::NamedFunction:0x0000000c7471e0>):
有办法解决吗?
尝试:
Table1.select(
Arel::Nodes::NamedFunction.new(
'ROUND', [
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
) * 1000
]
)
)
我从未使用过 Arel 的这一部分,我现在无法对此进行测试,但我猜你需要使用 Arel::Nodes::Multiplication 而不是 *
:
Arel::Nodes::Multiplication.new(
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
),
1000
)
我正在尝试通过 Arel 编写此查询:
SELECT ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) FROM Table1
使用http://www.scuttle.io/它return一个简单的:
Table1.select(
Arel::Nodes::NamedFunction.new(
'ROUND', [
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
) * 1000
]
)
)
但我的 rails 应用程序不接受它,给我:
NoMethodError (undefined method `*' for #<Arel::Nodes::NamedFunction:0x0000000c7471e0>):
有办法解决吗?
尝试:
Table1.select(
Arel::Nodes::NamedFunction.new(
'ROUND', [
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
) * 1000
]
)
)
我从未使用过 Arel 的这一部分,我现在无法对此进行测试,但我猜你需要使用 Arel::Nodes::Multiplication 而不是 *
:
Arel::Nodes::Multiplication.new(
Arel::Nodes::NamedFunction.new(
'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])]
),
1000
)