2017-10-04 91 views
0

我有兩個屬於同一模型的模型。如果可能,我想在一個查詢中找到兩個模型中的所有匹配父項。鏈接來自不同模型的ActiveRecord查詢

現在我這樣做:

locations = [1,2,3] 
flight_results = self.flights.where(from_id: locations).or(self.flights.where(to_id: locations)) 
waypoint_results = self.waypoints.where(location_id: locations) 
search_results = flight_results + waypoint_results 
search_results 

以上返回數組,而是因爲我使用分頁寶石的,我需要返回ActiveRecord_AssociationRelation。

這可能嗎?

+1

如果兩個模型不同,那麼你無法做到這一點。但你可以分頁數組,如果你正在使用'Kaminari' https://github.com/kaminari/kaminari#paginating-a-generic-array-object – MurifoX

+1

至於'WillPaginate',我不知道 – MurifoX

+0

我'使用'Kaminari'並獲取異常'未定義的方法'頁面'爲#'雖然,我想讀'Kaminari'文檔將是一個好主意... – Arel

回答

2

您不能合併2個不同的對象,因此您無法合併2個不同的對象集合。 你必須使用一個數組(除非你的航班和航點實際上是同一個模型的關係??)

但是你可以在你的分頁系統中使用一個數組。 Kaminari和will_paginate都提供了這樣做的方法。

你用什麼分頁寶石?

+1

Kaminari。現在閱讀文檔。 – Arel