「入力」「機構」「出力」の3つのモデルがあります。
メカニズム「has_one」:入力および「has_one」:出力。
Mechanismオブジェクトが「出力Yに対する入力Xの影響」という名前属性を持つようにしたい。
これが私が試したものです:
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: app/models/mechanism.rb:12:in 'name_mechanism' からの nil:NilClass の未定義のメソッド 'name'
ええ、私はNeo4jをデータベースとして使用していますが、これはneo4jの問題ではなく、Railsのコールバックに対する私の理解が弱いためだと思います。何かアドバイス?