我有三個模型「輸入」,「機制」和「輸出」。基於與其他模型的關聯自動命名對象
機制'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 –