2016-11-06 2 views
0

私はARELを経由して、このクエリを構成しようとしている:それは単に返すhttp://www.scuttle.io/を使用してAREL、ネストされたNamedFunction

SELECT ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) FROM Table1 

を:

Table1.select(
    Arel::Nodes::NamedFunction.new(
    'ROUND', [ 
     Arel::Nodes::NamedFunction.new(
     'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])] 
    ) * 1000 
    ] 
) 
) 

を私のレールのアプリが与え、それを受け入れません私:

NoMethodError (undefined method `*' for #<Arel::Nodes::NamedFunction:0x0000000c7471e0>): 

これを修正する方法はありますか?

答えて

0

私はARELのこの部分を使ったことがない、と私は今、この権利をテストすることはできませんが、私が代わりに*のおArel::Nodes::Multiplicationを使用する必要があることを推測している:

Arel::Nodes::Multiplication.new(
    Arel::Nodes::NamedFunction.new(
    'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])] 
), 
    1000 
) 
0

試してみてください。

Table1.select(
    Arel::Nodes::NamedFunction.new(
    'ROUND', [ 
     Arel::Nodes::NamedFunction.new(
     'UNIX_TIMESTAMP', [Arel::Nodes::NamedFunction.new('CURTIME', [4])] 
    ) * 1000 
    ] 
) 
) 
+0

私は狂っているのですか、これはOPのコードと同じですか? –

+0

申し訳ありませんが、自分の答えではなくOPの投稿を貼り付ける必要があります>、、 – bodacious

関連する問題