2017-03-19 7 views
0

における時間フィルタ日時Iは、2つのモデルがありレールのみ参加モデル

@routes = Route.where("origin_city_name LIKE (?)", "%#{@from}") 
        .destination_city_name(@to) 
        .company(@company) 
        .joins(:details) 

Detaildeparture日時を有しています属性。

私は次のようにdateでフィルタリングすることができるよ:

@routes = @routes.where(details: { departure: @date..Float::INFINITY }) if params[:date] 

にはどうすればいいだけtimeのために同じことを行うことができますか?

+0

あなたは 'departure'の唯一の時間部分を意味ですか? – Iceman

+0

はい、時間部分のみ – davideghz

+1

'details.departure :: time'でpgの列の時間部分を取得し、そこから作業することができます。 – Iceman

答えて

0

あなたはPostgreSQLのクエリを使用している場合は、次のようになります。

@routes.where("departure::time > ?", '13:20:00') 
+0

今すぐテストすることはできませんが、出発点が細部の列であっても動作するのでしょうか? – davideghz

+0

@ routes.where( "details.departure :: time>?"、 "13:20:00")というクエリでテーブルを指定することができます。しかし、クエリに1つの 'departure'カラムがなければ、テーブルなしで動作するはずです。 –

関連する問題