0

rails日時をとで比較しようとしたときにエラーが発生しましたpostgresql

ここで、この単純なスキーマを使用してテーブルを作成しました。

def change
    create_table :events do |t|
      t.string     :name
      t.datetime   :start_time
    end
end

次に、このスコープを使用して将来のイベントを取得しようとします:

scope :active_events, ->(id) { includes(:event).where(:foursquare_id => id).where('events.start_time => now()::timestamp') }

それはpostgresqlで次のように変換されます:

SELECT COUNT(DISTINCT "venues"."id") 
FROM "venues" 
LEFT OUTER JOIN "events" ON "events"."venue_id" = "venues"."id" 
WHERE "venues"."foursquare_id" = '4ada1e5ff964a5209f1e21e3' 
  AND (events.start_time => now()::timestamp)

今、次のエラーが表示されます:

PG::UndefinedFunction: ERROR:  operator does not exist: timestamp without time zone => timestamp without time zone
LINE 1: ...'4ada1e5ff964a5209f1e21e3' AND (events.start_time => now()::...

そして、私は本当にこれを理解するかどうか確信が持てません. 通常、それらは同じデータ型であり、比較できると思いますが、そうではないようです。

ここで何が欠けていますか?

4

1 に答える 1