2015-07-13 1 views
1

J'essaie de créer un blog et d'associer un commentaire à un message.Impossible de créer une relation avec des noeuds non persistés. Neo4jRB Gem

La façon dont je suis la définition des relations est la suivante:

#post.rb 
has_many :in, :comments, origin: :post # 5.03 try sth else 

#comment.rb 
has_one :out, :post, type: :comments_on 

L'erreur que je reçois est le suivant.

Neo4j::ActiveNode::HasN::NonPersistedNodeError in CommentsController#create 
Unable to create relationship with non-persisted nodes 

Trace Application:

app/controllers/comments_controller.rb:27:in `new' 
app/controllers/comments_controller.rb:27:in `create' 

Trace-cadre:

neo4j (5.0.2) lib/neo4j/active_node/has_n.rb:185:in `validate_persisted_for_association!' 
neo4j (5.0.2) lib/neo4j/active_node/has_n.rb:350:in `block in define_has_one_setter' 
neo4j (5.0.2) lib/neo4j/shared/property.rb:55:in `block in send_props' 
neo4j (5.0.2) lib/neo4j/shared/property.rb:55:in `each' 
neo4j (5.0.2) lib/neo4j/shared/property.rb:55:in `send_props' 
neo4j (5.0.2) lib/neo4j/shared/property.rb:25:in `initialize' 
neo4j (5.0.2) lib/neo4j/active_node/property.rb:7:in `initialize' 
actionpack (4.2.3) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (4.2.3) lib/abstract_controller/base.rb:198:in `process_action' 
actionpack (4.2.3) lib/action_controller/metal/rendering.rb:10:in `process_action' 
actionpack (4.2.3) lib/abstract_controller/callbacks.rb:20:in `block in process_action' 
activesupport (4.2.3) lib/active_support/callbacks.rb:115:in `call' 
activesupport (4.2.3) lib/active_support/callbacks.rb:115:in `call' 
activesupport (4.2.3) lib/active_support/callbacks.rb:553:in `block (2 levels) in compile' 
activesupport (4.2.3) lib/active_support/callbacks.rb:503:in `call' 
activesupport (4.2.3) lib/active_support/callbacks.rb:503:in `call' 
activesupport (4.2.3) lib/active_support/callbacks.rb:88:in `run_callbacks' 
actionpack (4.2.3) lib/abstract_controller/callbacks.rb:19:in `process_action' 
actionpack (4.2.3) lib/action_controller/metal/rescue.rb:29:in `process_action' 
actionpack (4.2.3) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action' 
activesupport (4.2.3) lib/active_support/notifications.rb:164:in `block in instrument' 
activesupport (4.2.3) lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
activesupport (4.2.3) lib/active_support/notifications.rb:164:in `instrument' 
actionpack (4.2.3) lib/action_controller/metal/instrumentation.rb:30:in `process_action' 
actionpack (4.2.3) lib/action_controller/metal/params_wrapper.rb:250:in `process_action' 
actionpack (4.2.3) lib/abstract_controller/base.rb:137:in `process' 
actionview (4.2.3) lib/action_view/rendering.rb:30:in `process' 
actionpack (4.2.3) lib/action_controller/metal.rb:196:in `dispatch' 
actionpack (4.2.3) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' 
actionpack (4.2.3) lib/action_controller/metal.rb:237:in `block in action' 
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in `call' 
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in `dispatch' 
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:45:in `serve' 
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve' 
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in `each' 
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in `serve' 
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call' 
rack (1.6.4) lib/rack/etag.rb:24:in `call' 
rack (1.6.4) lib/rack/conditionalget.rb:38:in `call' 
rack (1.6.4) lib/rack/head.rb:13:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/params_parser.rb:27:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/flash.rb:260:in `call' 
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context' 
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/cookies.rb:560:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks' 
actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/reloader.rb:73:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 
web-console (2.2.1) lib/web_console/middleware.rb:39:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
railties (4.2.3) lib/rails/rack/logger.rb:38:in `call_app' 
railties (4.2.3) lib/rails/rack/logger.rb:20:in `block in call' 
activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `block in tagged' 
activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in `tagged' 
activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged' 
railties (4.2.3) lib/rails/rack/logger.rb:20:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call' 
rack (1.6.4) lib/rack/runtime.rb:18:in `call' 
activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' 
rack (1.6.4) lib/rack/lock.rb:17:in `call' 
actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in `call' 
rack (1.6.4) lib/rack/sendfile.rb:113:in `call' 
railties (4.2.3) lib/rails/engine.rb:518:in `call' 
railties (4.2.3) lib/rails/application.rb:165:in `call' 
rack (1.6.4) lib/rack/lock.rb:17:in `call' 
rack (1.6.4) lib/rack/content_length.rb:15:in `call' 
rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service' 
/usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service' 
/usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run' 
/usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread' 

Demande: Paramètres:

{"utf8"=>"✓", 
"authenticity_token"=>"nbc5AbgDSLmbt0Rh2FjYfQxuq8/N8jbNtfwPr28cSC+VUjK9YHZYWqx5e5LyZe7uNU8f2msFisLwaT+pgLDn3w==", 
"comment"=>{"body"=>"comment body", 
"post"=>"b4a6dd87-cb67-46fb-b26a-147065fce038"}, 
"commit"=>"Create Comment"} 

que je suis la vidéo d'introduction pour la création d'un b Connectez-vous avec Neo4jrb gem et les rails. J'ai rencontré un problème similaire sur github, mais je ne suis pas sûr que ce soit le même problème.

Le problème semble être sur la création des relations, suis-je pas définir la relation correctement, des suggestions?

Merci!

Répondre

0

Le paramètre Neo4j::Config[:autosave_on_assignment] = true dans applicaton.rb a résolu le problème.

Vous pouvez voir la question-réponse complète sur Github.

+1

Il y a quelques jours, une modification a été fusionnée pour permettre la gestion de nœuds non enregistrés. Consultez http://neo4jrb.readthedocs.org/en/latest/Querying.html#associations-and-unpersisted-nodes. Il est dans la branche master pour le moment, ne sera pas libéré pour une semaine ou deux, j'imagine. – subvertallchris

+0

Merci, je vais jeter un oeil. – cndv