我有许多作者(作为节点)创作多个艺术作品(wokas),也作为节点。我想获取第100页的作者,每页5位作者。从这五位作者中选出的第一位作者,我想知道他的第一件艺术作品是谁。这是我的代码和遇到的错误。如何解决这个问题?
irb(main):021:0* a = Author.page(100).per(5)
=> #<Kaminari::Neo4j::Paginated:0x007fde539b3c30 @source=Author(author_name: String), @current_page=100, @per_page=5>
irb(main):022:0> a.first
CYPHER 792ms MATCH (result_author:`Author`) RETURN result_author SKIP {skip_495} LIMIT {limit_5} | {:skip_495=>495, :limit_5=>5}
=> #<Author uuid: nil, author_name: "1520?, Pittoni Battista, B.">
irb(main):023:0> w = a.first.wokas.first
CYPHER 361ms MATCH (result_author:`Author`) RETURN result_author SKIP {skip_495} LIMIT {limit_5} | {:skip_495=>495, :limit_5=>5}
Author#wokas 85038ms MATCH (previous:`Author`) OPTIONAL MATCH previous-[rel1:`AUTHORED_BY`]->(next:`Woka`) WHERE (ID(previous) IN {ID_previous}) RETURN ID(previous), collect(next) | {:ID_previous=>[19800172, 19800173, 19800174, 19800175, 19800176]}
SystemStackError: stack level too deep
from /Users/levi/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/neo4j-5.0.11/lib/neo4j/active_node/has_n.rb:154:in `previous_proxy_results_by_previous_id'
另一条语句失败,并出现相同的错误。
irb(main):003:0> w = a.first.wokas.count
CYPHER 372ms MATCH (result_author:`Author`) RETURN result_author SKIP {skip_495} LIMIT {limit_5} | {:skip_495=>495, :limit_5=>5}
Author#wokas 99625ms MATCH (previous:`Author`) OPTIONAL MATCH previous-[rel1:`AUTHORED_BY`]->(next:`Woka`) WHERE (ID(previous) IN {ID_previous}) RETURN ID(previous), collect(next) | {:ID_previous=>[19800172, 19800173, 19800174, 19800175, 19800176]}
SystemStackError: stack level too deep
我意识到我应该提供一个答案;)
我认为这是在neo4j
gem的5.0.12
版本中修复的。你能更新一下,看看是否有效吗?