1

如何在包含activerecord查詢中指定要限制的內容?

Shop.includes(:opening_times) 
       .where("opening_times.day =?", Time.now.wday) 
       .where("opening_times.opens > ?", @now) 
       .order("opening_times.opens") 
       .references(:opening_times) 
       .limit(12) 

當它擊中商店有兩個開放時間,它只返回11店。我想它只限於12個開放時間,而不是12個商店。我如何指定我想限制12個店鋪,而不是12個opening_times?

奇怪的是,這隻發生在我按開放時間排序時。如果我拿走.order("opening_times.opens"),它會返回12個商店。

回答

1

也許你的店中有一個有2個opening_times記錄,並且你的SQL引擎返回它們兩個。

嘗試增加不同的是這樣的:Shop.distinct.includes(:opening_times).where...

+0

我不明白爲什麼,但是當我做,它說,'PG ::語法錯誤:錯誤:語法錯誤或接近「DISTINCT」 LINE 1:SELECT DISTINCT DISTINCT '。不知怎的,它顯示DISTINCT兩次。我很困惑。 – lala

相關問題