Neo4j.rb - NameError: undefined local variable or method when using where
Neo4j.rb - NameError: undefined local variable or method when using where
我正在尝试检索描述中包含单词 "Art" 的所有 BISAC 节点。
ba = Bisac.where(bisac_value =~ '.*Art.*')
NameError: undefined local variable or method `bisac_value' for main:Object
等效密码查询检索 10 个节点。
MATCH (b:Bisac) WHERE (b.bisac_value =~ '.*Art .*') RETURN b;
我做错了什么?
找到答案(在文档中),这里是 link:
http://neo4jrb.readthedocs.org/en/5.1.x/Querying.html
查询应该是:
ba = Bisac.all(:l).where("l.bisac_value =~ {the_value}").params(the_value: '.*Art.*').pluck(:l)
或者,更简单:
ba = Bisac.all(:l).where("l.bisac_value =~ '.*Art.*'").pluck(:l)
您的解决方案肯定会奏效,但不使用 Query
API 的更简单的解决方案是简单地使用 Ruby 正则表达式:
Bisac.all(:l).where(bisac_value: /.*Art.*/)
您甚至可以使用不区分大小写的正则表达式 (/.*Art.*/i
),它也会被翻译成 Cypher 语法。
从分页中删除了 Kaminari 并使用了 will_paginate。
使用 page_entries_info
问题已解决。
我正在尝试检索描述中包含单词 "Art" 的所有 BISAC 节点。
ba = Bisac.where(bisac_value =~ '.*Art.*')
NameError: undefined local variable or method `bisac_value' for main:Object
等效密码查询检索 10 个节点。
MATCH (b:Bisac) WHERE (b.bisac_value =~ '.*Art .*') RETURN b;
我做错了什么?
找到答案(在文档中),这里是 link: http://neo4jrb.readthedocs.org/en/5.1.x/Querying.html
查询应该是:
ba = Bisac.all(:l).where("l.bisac_value =~ {the_value}").params(the_value: '.*Art.*').pluck(:l)
或者,更简单:
ba = Bisac.all(:l).where("l.bisac_value =~ '.*Art.*'").pluck(:l)
您的解决方案肯定会奏效,但不使用 Query
API 的更简单的解决方案是简单地使用 Ruby 正则表达式:
Bisac.all(:l).where(bisac_value: /.*Art.*/)
您甚至可以使用不区分大小写的正则表达式 (/.*Art.*/i
),它也会被翻译成 Cypher 语法。
从分页中删除了 Kaminari 并使用了 will_paginate。 使用 page_entries_info
问题已解决。