Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 如何在Neo4jRB 3.0中删除关系?_Ruby On Rails_Neo4j - Fatal编程技术网

Ruby on rails 如何在Neo4jRB 3.0中删除关系?

Ruby on rails 如何在Neo4jRB 3.0中删除关系?,ruby-on-rails,neo4j,Ruby On Rails,Neo4j,我有两种型号: class Topic include Neo4j::ActiveNode has_many :in, :favorited_by, model_class: User, origin: :favorite_topics end 及 我怎样才能只删除关联 irb(main):008:0> Topic.first.favorited_by.delete(User.first) NoMethodError: undefined method `delete' for

我有两种型号:

class Topic 
  include Neo4j::ActiveNode
  has_many :in, :favorited_by, model_class: User, origin: :favorite_topics
end

我怎样才能只删除关联

irb(main):008:0> Topic.first.favorited_by.delete(User.first)
NoMethodError: undefined method `delete' for #<Neo4j::ActiveNode::Query::QueryProxy:0x00000004b27f10>
irb(main):008:0>主题。第一。偏好者。删除(用户。第一)
NoMethodError:未定义的方法“delete”#

谢谢。

很抱歉我的第一个回答,我以为这是一个有很多问题的回答。这是可行的,但并不理想:

topic = Topic.first
user = User.first
topic.favorited_by = topic.favorited_by.to_a - [user]
编辑:

这有点好,但还是不太好。我刚刚为此创建了一个github问题:


如果您运行的是最新版本4.0.0.rc.1,您可以借助Brian的评论来执行
主题.first.favorited\u by.first\u rel\u to(User.delete).destroy
,并知道两者之间只有一种关系


如果您使用的是来自Github的主分支,那么我只是在QueryProxy中添加了
delete
destroy
方法
Topic.first.favorited\u by.delete(User.first)
将从数据库运行,
Topic.first.favorited\u by.destroy(User.first)
将把关系返回到Ruby并调用delete,触发回调。这些将在不久的下一个版本中发布。

另外,请参考本期@在master中,Chris提出了一个解决方案
topic = Topic.first
user = User.first
topic.favorited_by = topic.favorited_by.to_a - [user]
topic.favorited_by(:user, :rel).match_to(user).delete_all(:rel)