2015-01-12 34 views
1

我怎樣才能讓我的彈撥陣列與PAGINATE方法的工作(我認爲僅適用於queryproxy對象)Neo4j的寶石 - DISTINCT查詢與分頁

我的結果是拉了幾個作爲同一節點的存在是它的多條路徑,所以我增加了勇氣和獨特的,像這樣..

current_user.friends....where()...params().pluck('DISTINCT e').paginate..

有它周圍的另一種方式?或者是否需要在neo4j分頁寶石中進行更改?

+0

你的'朋友'協會是什麼樣的?如果它只指定一種關係類型,則只能得到不同的結果。有時用戶之間有關係有多個副本嗎? –

+0

現在,我不認爲你可以。分頁是相當有限的,需要擴展以支持這一點。 – subvertallchris

+0

還有其他東西過去的朋友,這就是爲什麼有多個路徑到達節點。我只是縮短了它。也許我可以看看寶石......這可能是我知道該怎麼做的事情之外 – Clam

回答

1

現在,這是不可行的使用paginate方法。 WillPaginate將返回已從數據庫填充的對象WillPaginate::Collection。我們也許能夠讓它迴歸其他的東西並且懶洋洋地評估,但是我不得不更多地玩弄它。

您可以直接創建Neo4j::Paginated對象,但這些只是QP的採集結果。

# match stupid friends with awful events, return distinct events 
query = current_user.friends(:f).where(stupid: true).events(e:).rel_where(expected_attendees: 0) 
@bad_events = Neo4j::Paginated.create_from(query, 1, 15).pluck('distinct e') 

create_from返回饋送給它代表eachpluck到其QueryProxy對象Neo4j::Paginated對象。請注意,它將基於鏈的末尾進行分頁,因此它將根據事件進行每頁15個第一頁。另外請注意,你不能做一個明確的計數。

檢查https://github.com/neo4jrb/neo4j/blob/master/lib/neo4j/paginated.rb瞭解更多。這很容易閱讀。