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)