Neo4j gem-更新关系属性方法

这是一个相当简单的问题。

是否存在用于更新gem中关系属性的特定方法?我似乎无法做到简单update_attributesupdate

我的关系已创建,并且nil类的更新未定义。

event = Event.find(params[:event]) 
invite = Invite.create_invitation(event, current_user, nil) #creates relationship
invite.update(interested: params[:interest])

我应该使用另一种方法吗?

subvertallchris

每当您收到有关nil类的undefined的错误时,应该立即向您发出信号,即问题出在您正在调用方法的变量上,而不是您正在调用的方法。换句话说,因为这说的是nil没有update方法,所以您的重点应该放在实际上为nil的变量上。这里的问题是:为什么要invite返回nil而不是建立关系?

由于您使用的是自定义类方法来创建关系,因此我猜您不是在告诉它返回正确的对象。它看起来应该像这样:

def self.create_invitation(event, user, something_else = nil)
  rel = InvitationRel.new(from_node: event, to_node: user)
  if rel.save
    rel
  else
    # return an error, maybe rel.errors.full_messages?
  end
end

然后,您的控制器需要检查rel是否正确创建。

event = Event.find(params[:event]) 
invite = Invite.create_invitation(event, current_user, nil) #creates relationship
if invite.neo_id.nil?
  # the rel did not create correctly, neo_id is only present on persisted objects
else
  invite.update(interested: params[:interest])
end

在我看来,您在解决这个问题上已经走了很长一段路。您不需要将关系的创建和设置interested属性分开,您只需在一次对数据库的调用中就可以做到:

event = Event.find(params[:event])
invite = InviteRel.new(from_node: event, to_node: current_user, interested: params[:interest])
if invite.save?
  # rel was created, move on
else
  # something wrong in the rel, figure out what it was
end

既然您知道总是要创建该interested属性,那么这似乎是向模型添加验证以确保该属性始终在create上设置的好地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Neo4J gem关联和创建关系

来自分类Dev

Neo4j gem-选择多个节点/关系

来自分类Dev

Neo4j gem-处理管理员关系的首选方法

来自分类Dev

Neo4j gem-销毁关联节点和关系的有效方法

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

Neo4j gem-是否根据有效的关系检查每个对象?

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

Neo4j gem-是否根据有效的关系检查每个对象?

来自分类Dev

Neo4j gem-在一个属性中查询多个参数

来自分类Dev

Neo4j gem-在一个属性中查询多个参数

来自分类Dev

Neo4j关系的属性

来自分类Dev

Neo4j中的关系属性

来自分类Dev

Neo4j gem-仅在两个节点之间不存在时才创建关系

来自分类Dev

用于Neo4j和Rails 4的认证gem?

来自分类Dev

Neo4j gem - Querying multiple parameters in one property

来自分类Dev

neo4j will_paginate gem安装问题

来自分类Dev

Neo4J gem datetime数据类型

来自分类Dev

rake db:seed is not working using neo4j gem

来自分类Dev

Neo4j gem - Updating relationship properties method

来自分类Dev

Neo4j gem-根据参数值查询

来自分类Dev

Neo4j gem undefined method'name'for CypherNode

来自分类Dev

Neo4j关系索引-搜索关系属性

来自分类Dev

neo4j条件关系

来自分类Dev

Neo4j,匹配关系在何处

来自分类Dev

Neo4j亲子关系

来自分类Dev

在neo4j中建立关系

来自分类Dev

Neo4j双向关系

来自分类Dev

Neo4j减少关系功能

来自分类Dev

Neo4J CSV关系