Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用LIKE"=~&引用;neo4j在轨道上?_Ruby On Rails_Ruby_Search_Neo4j - Fatal编程技术网

Ruby on rails 如何使用LIKE"=~&引用;neo4j在轨道上?

Ruby on rails 如何使用LIKE"=~&引用;neo4j在轨道上?,ruby-on-rails,ruby,search,neo4j,Ruby On Rails,Ruby,Search,Neo4j,我正在用Neo4j和rubyonrails一起使用,我想用像“操作符”=~“搜索用户名。。使用ActiveNode中的“Where”返回匹配用户列表。 我该怎么做呢?find\u by方法的工作原理与where SQL查询类似 Client.find\u by user\u name:“Smith先生” # => # Client.find_by user_name:“non_user” #=>零 在的where中使用字符串,然后对正则表达式使用参数。一旦您开始在where子句中使用字符串,您就

我正在用Neo4jrubyonrails一起使用,我想用像“操作符”=~“搜索用户名。。使用ActiveNode中的“Where”返回匹配用户列表。
我该怎么做呢?

find\u by方法的工作原理与where SQL查询类似

Client.find\u by user\u name:“Smith先生”
# => #
Client.find_by user_name:“non_user”
#=>零

的where
中使用字符串,然后对正则表达式使用参数。一旦您开始在
where
子句中使用字符串,您就是在纯密码中操作的,因此最好阅读

Client.as(:c).where('c.name =~ {name}').params(name: '.h?ristopher')
如果您想要较短的版本,还可以执行以下操作:

Client.where(name: /.h?ristopher/)

它生成的密码匹配几乎相同,但不会使用参数。如果您的查询基于表单数据,那么对您的数据库来说就不太安全,而且由于Neo4j缓存查询路径的方式,您的性能也不会那么好。

谢谢@new2code,但我想要与
Client.where(“first_name,比如“%{params[:first_name]}%”相当的名称)
,因为数据库返回
“无效输入'i':应为'o/o'(第1行,第41列)\n\“匹配(结果:
User
)其中第一个名称如“%mOhA%”返回结果\“\n^”
谢谢@subvertallchris,如何用较短的版本检查两个参数?:D,否则您需要在此时使用较长的版本。
Client.as(:c)。其中('c.name={first\u regex}或c.occupation={second regex}')。参数(第一个正则表达式:/regex\u 1/,第二个正则表达式:/second\u regex')
Client.where(name: /.h?ristopher/)