J'ai un utilisateur parlant plusieurs langues. J'écris une requête pour savoir si l'utilisateur parle anglais. Je veux savoir si l'utilisateur parle anglais en cherchant s'il existe une relation entre le nœud utilisateur et le nœud de langue. Je le fais en utilisant rels.to_other ou rels.to_others. Les deux échouent comme décrit ci-dessous. Et BTW quelle est la différence entre les méthodes "to_other" et "to_others"?Neo4j rels.to_other méthode échoue avec erreur
irb(main):105:0> u
=> #<User uuid: "b1461edd-a574-44a7-9555-68659a361be2", created_at: Tue, 06 Oct 2015 16:21:26 +0000, name: "Levi Damian", type: "Regular", updated_at: Tue, 06 Oct 2015 16:21:26 +0000>
irb(main):106:0> l
=> #<Language uuid: "e388eb70-66b2-4b20-8f15-6ca11b34d03d", name: "English">
irb(main):107:0> u.rels.to_other(l)
CYPHER 802ms MATCH n, (n)-[r]-(p) WHERE (ID(n) = {ID_n}) RETURN r as result | {:ID_n=>38}
NoMethodError: CYPHER 125ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>38}
CYPHER 125ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>43}
CYPHER 125ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>38}
CYPHER 124ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>42}
CYPHER 128ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>38}
CYPHER 130ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>41}
CYPHER 124ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>38}
CYPHER 125ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>86}
CYPHER 124ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>38}
CYPHER 129ms MATCH n WHERE (ID(n) = {ID_n}) RETURN n | {:ID_n=>87}
undefined method `to_other' for #<Array:0x007fedc2d6b980>
from (irb):107
from /Users/levi/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
Pourquoi cette erreur et comment je peux le faire fonctionner?
u.languages.match_to (l) .existe? NoMethodError: méthode non définie 'existe? ' pour # \t from /Users/levi/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/neo4j-5.2.9 /lib/neo4j/active_node/query/query_proxy.rb:232:in 'method_missing ' –
LDB
u.languages.match_to (l) .count N ° de l'utilisateur languages 778ms MATCH utilisateur0 WHERE (ID (utilisateur0) = {ID_utilisateur0}) MATCH utilisateur0 - [rel1: 'COMMUNICATING_IN'] -> (result_languages:' Language') O WH (ID (result_languages) = {ID_result_languages}) RETURN nombre (result_languages) AS result_languages | {: ID_user0 => 0,: ID_result_languages => 3} => 1 – LDB
C'est «existe?», Avec un s. J'ai mis à jour ma réponse pour refléter cela. – subvertallchris