2014-10-31 60 views
0

我明白,在ActiveRecord for has_many:通過關聯不能與inverse_of一起工作,但我遇到了一個問題,我在Rails Admin gem中有很多通過模型,當我試圖編輯或創建一個新資源時,頁面導致模板呈現的無限遞歸。ActiveRecord has_many通過inverse_of導致rails管理員工作?

問題是here

當我試圖消除

accepts_nested_attributes_for :recipes, allow_destroy: true 

它的工作和錯誤走了。

而且它工作時,我不停地accepts_nested_attributes_for並放置

has_many :recipes, :through => :recipe_categorizations, :inverse_of => :categories 

:inverse_of底。

這怎麼可能?是不是inverse_of不可用於:通過?它的存在是否會造成任何傷害,還是隻是被忽略?

如果有任何幫助,我正在使用Rails 4。

回答

1

如果您沒有設置:inverse_of記錄,則關聯將盡其所能與自己的正確逆相匹配。自動逆向檢測僅適用於has_manyhas_onebelongs_to關聯。

AssociationReflection::INVALID_AUTOMATIC_INVERSE_OPTIONS常數中定義的關聯上的其他選項也會阻止自動找到關聯的逆。

逆關聯的自動猜測使用基於類名稱的啓發式方法,因此它可能不適用於所有關聯,特別是非標準名稱的關聯。

這是source設置逆。

+0

但是,爲什麼它會導致Rails管理員正確識別反轉,如果它不適用於:通過?爲了rails管理員的目的,是否有任何傷害? – 2014-10-31 02:22:23

+0

沒有傷害。 – mohameddiaa27 2014-10-31 02:26:31