ruby-on-rails neo4j relationship neo4j.rb

ruby on rails - Gema Neo4j-Dirección de consulta detallada con has_many: ambos



ruby-on-rails relationship (1)

De acuerdo, estaba mezclando dos estilos diferentes de consultas

Por ejemplo, en los documentos tienen esto cuando ya se ha encadenado a la lesson

s.lessons(:l, :r).where("r.start_date < {the_date} and r.end_date >= {the_date}").params(the_date: ''2014-11-22'').pluck(:l)

Y algo como esto

Student.query_as(:s).where("s.age < {age} AND s.name = {name} AND s.home_town = {home_town}").params(age: params[:age], name: params[:name], home_town: params[:home_town]).pluck(:s)

Presta atención al lugar donde colocas las cosas . y la parte query_as versus the lessons(:l, :r) query_as lessons(:l, :r)

Mi consulta final que funcionó eliminó los componentes de match porque ya estaba en la relación y el nodo que estaba consultando. Por lo tanto, se ve algo como esto.

current_user.friends.events(:event, :rel).where("rel.admin = {admin_p} AND event.detail = {detail_p}").params(admin_p: true, detail_p: true).pluck(:event)

Sin embargo, todavía me gustaría una respuesta a algunas de mis preguntas.

Pude hacer una coincidencia de patrón específica de esta pregunta original Gema Neo4j - Método preferido para tratar con la relación de administrador a través de este

Event.query_as(:event).match("(event)<-[invite:invited]-(user1:User)<-[friends_with:friends_with]-(user2:User)").where(''invite.admin = true'').pluck(:event)

No pude obtener una versión modificada como esta para que funcione

current_user.friends.events.query_as(:event).match("(event)<-[invite:invited]-(user:User)").where(invite: {admin: true}).pluck(:event)

Entonces, lo que realmente cambié fue cambiar la dirección para from_node y to_node en mi clase de invitación

from_class User to_class Event type ''invited''

Se estableció previamente como Event a User . Una de mis preguntas es, ¿por qué tuve que cambiar eso para que la consulta funcione? ¿No es el has_many: both significan que la dirección no importa?

Otro cambio fue cambiar mi tipo de relación a minúsculas. En mi modelo, está escrito en minúsculas, lo que parece importar. Pensé que los dos se convertirían a mayúsculas como lo hace neo4j, pero tal como están ahora, no es así.

Creo que necesito hacer funcionar el método current_user ya que solo quiero los eventos de los amigos de current_user. Sugerencias?