プレーン SQL からクエリを変更すると問題が発生します (注: AR は使用していませんが、続編です)。
したがって、これは機能します:
Post.fetch(
"SELECT
COUNT(*) as count, HOUR(created_at) as date, class_type
FROM
tours t
WHERE
t.created_at Between ? and ?
GROUP BY hour(t.created_at), flavor", @range_begins, @range_ends
).all
そして、期待される配列を返します。しかし、これはしません:
Post.select("COUNT(*) as count, HOUR(created_at) as date, class_type")
.where(created_at: @basic_range)
.group_by("HOUR(created_at), flavor")
.all
しかし、コンソール (最後に .all がない) では、そこから生成されたクエリは適切に見えます (読みやすいようにフォーマットされています)。
<Sequel::Mysql2::Dataset:
"SELECT
'COUNT(*) as count, HOUR(created_at) as date, class_type'
FROM
`posts`
WHERE
((`created_at` >= '2014-05-01 00:00:00') AND (`created_at` <= '2014-05-01 23:59:59'))
GROUP BY
'HOUR(created_at), flavor'">
最後に「.all」を追加すると、次のような配列が返されます。
[#<Tour @values={:"COUNT(*) as count, HOUR(created_at) as date, class_type"=>"COUNT(*) as count, HOUR(created_at) as date, class_type"}>]
私は何が欠けていますか?助けてくれてありがとう