2010-07-19 47 views
4

我陷入這個錯誤已經有一段時間了,現在已經死了。不能重複NilClass - 錯誤

我得到這個完全無益的錯誤

can't dup NilClass 

情況是這樣的。

我有一個班級與另一個班級有關係。說

class Parent 
end 

class Child < Parent 
    unloadable 
    :has_many :parents, :foreign_key => "child" 
end 

該錯誤不會在第一次訪問時發生。它在孩子第二次被訪問時發生。

究竟是什麼導致了這個錯誤,並有解決方案?

我提到了following link但它並不能幫助

更新

我發現this

但它再次表明相同。但我的lib中有一個模塊。它與模型沒有任何關係。

回答

2

爲什麼你將Child標記爲可卸載?這是否有很好的理由?如果沒有,我會刪除。

Rails API說:「每次清除相關性時,都會刪除不可加載的常量。」

是否當你把它切換到錯誤發生:

class Child < Parent 
    has_many :parents, :foreign_key => "child" 
end 

而且,我也可以超越,但這似乎更標準:

class Child 
    belongs_to :parent 
end 

class Parent 
    has_many :children, :dependent=>:destroy 
end 
+0

但http://rails.rubyonrails.org /classes/ActiveRecord/Associations/ClassMethods.html表示不使用:在使用has_many時銷燬。 – ZX12R 2010-07-20 05:12:35

+2

我相信這意味着沒有「belongs_to:parent,:dependent =>:destroy」 - 在這種情況下,如果父母有4個孩子,並且你摧毀了一個孩子,那麼這個孩子和父母將被銷燬,但其他3個孩子仍然是孤兒。 – 2010-07-20 13:19:07