我有三个模型“输入”,“机制”和“输出”。基于与其他模型的关联自动命名对象
机制'has_one':输入和'has_one':输出。
我希望它使机制对象具有名称属性 “输入X对输出Y的影响”。
这里是我的尝试:
class Mechanism
include Neo4j::ActiveNode
property :name, default: 'NewMechanism#{self.class.count}'
has_one :in, :input, class_name: 'Input'
has_one :out, :output, class_name: 'Output'
after_create :name_mechanism
def name_mechanism
self.update_attributes(name: "Effect of #{self.input.name} on #{self.output.name}")
end
end
但是,当我在控制台初始化一个对象,我得到的错误
NoMethodError: undefined method `name' for nil:NilClass from app/models/mechanism.rb:12:in 'name_mechanism'
所以,是的,我使用的Neo4j作为一个数据库,但我怀疑这不是neo4j问题,而是我对Rails回调的理解不足。有什么建议?
我认为Max的保理是值得关注的,但我也对底层问题感到好奇。你的创建/保存语句是什么样的?例如,如果你正在创建,并指定当时的输入和输出,那么在所有关系创建之后都有'after_save'发生的争论。我认为可能值得在'neo4j'回购中增加一个问题:github.com/neo4jrb/neo4j/issues/new –