我有兩個車型一個一個的/ HAS_ONE關係打破顯示的頁面是項目模型,另一個是ProjectSyndication模型,代碼看起來是這樣的:ActiveAdmin belongs_to的模型
class Project
has_one :project_syndication
end
class ProjectSyndication
belongs_to :project
end
ActiveAdmin.register Project, as: 'Offering' do
end
ActiveAdmin.register ProjectSyndication do
belongs_to :offering, parent_class: Project
end
此代碼給我什麼時候去表演頁面ProjectSyndication,這是下面的錯誤:
undefined method `project_syndications' for #<Project:0x007fc309a972b0>
我沒有挖的只是有點和地獄的它在我的項目模型創建了一個空project_syndications方法,然後起身出現以下錯誤:
undefined method `find' for nil:NilClass
所以我可以推斷出ActiveAdmin是治療這種關聯像的has_many關聯,並試圖找到找到一個項目,該項目將無法正常工作的所有項目銀團後ProjectSyndication。
我的項目模型
def project_syndications
ProjectSyndication.where(project_id: id)
end
也能正常工作下,使下面的方法解決了這個問題,但我不覺得它是做正確的方式。我瀏覽了ActiveAdmin文檔,但一直未能找到很多。我問的是解決問題的正確方法,或者這是來自ActiveAdmin的錯誤/功能。
任何幫助將不勝感激,謝謝你提前。
嘿謝謝你的回答。但是我不確定你在說什麼,Project模型沒有project_syndication_id,這實際上在ProjectSyndication模型中有一個project_id屬性,表明一個項目有一個project_syndication。正如你在這裏看到的:[Rails Guide](http://guides.rubyonrails.org/association_basics.html#the-has-one-association)。 您提到冗餘的代碼是ActiveAdmin代碼,如果我刪除它,ActiveAdmin將無法工作。 –
如果你有syndications.project_id,一個項目肯定會has_many syndications ...可能這是罪魁禍首畢竟? – gizmore
我們不需要has_many關係,一個項目只有一個聯合。爲什麼我會去一個has_many關係? –