2017-04-21 1 views
0
class Client 
=begin 
    Clients are individual users 
=end 
    include Neo4j::ActiveNode 
    include Neo4j::UndeclaredProperties 
    include Neo4j::Timestamps # will give model created_at and updated_at timestamps 

    property :bot_client_id 
    property :sms 
    property :telegram_id 
    property :first_name 
    property :last_name 
    property :email 

end 

Lorsque je crée un nouveau nœud, il n'y a pas UUID peuplé:Neo4j RuntimeError: Aucune session définie

client = Client.new 

lorsque je tente de trouver un client créé, je reçois une erreur d'exécution:

client = Client.find_by(bot_client_id: 'botid') 

Détails de l'erreur:

RuntimeError: No session defined! 
    from /usr/local/rvm/gems/ruby-2.2.1/gems/neo4j-8.0.13/lib/neo4j/active_base.rb:9:in `block in current_session' 
    from /usr/local/rvm/gems/ruby-2.2.1/gems/neo4j-8.0.13/lib/neo4j/active_base.rb:8:in `tap' 
    from /usr/local/rvm/gems/ruby-2.2.1/gems/neo4j-8.0.13/lib/neo4j/active_base.rb:8:in `current_session' 
    from /usr/local/rvm/gems/ruby-2.2.1/gems/neo4j-8.0.13/lib/neo4j/model_schema.rb:35:in `model_constraints' 
    from /usr/local/rvm/gems/ruby-2.2.1/gems/neo4j-8.0.13/lib/neo4j/model_schema.rb:131:in `each_schema_element' 

J'ai une méthode def initialize qui comprend:

neo4j_adaptor = Neo4j::Core::CypherSession::Adaptors::HTTP.new('http://user:[email protected]:7474') 
Neo4j::ActiveBase.on_establish_session { Neo4j::Core::CypherSession.new(neo4j_adaptor) } 

Répondre

0

Votre code pour établir la session est juste, mais je ne sais pas ce que vous voulez dire que ce soit dans un def initialize. Est-ce dans la méthode initialize d'une classe? Si oui, est-ce que cette classe est initialisée (peut-être mettre un puts là pour voir)? Je suggère de mettre le code d'installation à la place dans une partie de votre application où tout est configuré globalement.

Je pense avoir répondu à la question du cours uuid pas peuplée here et vous ne serez pas en mesure de find_by jusqu'à ce que l'objet est conservé (soit par create ou save).

+0

Merci. Ce n'est pas une application rails donc n'utilisez pas un fichier de configuration. – Angela

+0

Je l'ai vu donc je dois l'utiliser en plus ou à la place du code ci-dessus? # En JRuby ou en IRM, en utilisant le mode Serveur Neo4j. Lorsque le railtie est inclus, cela se produit automatiquement. Neo4j :: Session.open (: http) et est le: http un symbole tel quel ou devrait être l'URL grapheneFB avec les informations d'identification? – Angela

+0

J'ai utilisé 'save' et j'ai obtenu ce qui suit: client.save Neo4j :: DeprecatedSchemaDefinitionError: Certains éléments de schéma ont été définis par le modèle (qui n'est plus supporté), mais ils n'existent pas dans la base de données. Exécutez ce qui suit pour les créer: râteau Neo4j: generate_schema_migration [contrainte, client, UUID] Et puis exécutez 'rake Neo4j: migrate' – Angela