2017-03-19 45 views
0

過濾器日期時間的時候,我有兩個型號:Route的has_manyDetailsRails的 - 只有在加入模型

在控制器我加入這兩個型號如下:

@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')。但它應該沒有表格,除非我在查詢中只有一個「離開」列。 –

相關問題