0

我有许多作者(作为节点)创作多个艺术作品(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
4

1 回答 1

1

我意识到我应该提供一个答案;)

我认为这是在gem版本5.0.12中修复的。neo4j你能更新一下看看是否有效吗?

于 2015-08-07T11:58:46.837 回答