2012-07-10 54 views
2

這裏是完整的錯誤軌道扔給我:乾淨的方式呈現STI對象而不重複部分?

缺少部分publisher_groups/publisher_group {:locale => [:en],::formats => [:html],:handlers => [:erb,:建築師,:咖啡]}。搜查:等等等等

在組織展會的看法:

<%= render @organization.groups %> 

在/views/groups/_group.html.erb:

<p><%= group.name %></p> 
<p><%= group.type %></p> 

的關係在這兩個模型組存在和組織模型。錯誤引用PublisherGroup。該組模型具有三種類型的STI,截至目前,除了指定類型外,其他都不做任何事情。我怎樣才能讓這個渲染器正常工作,因爲@ organization.group對象都是組的子類?

+0

嘗試<%= render:partial =>'partial_what_you_need',:collection => @ organization.groups%> – 2012-07-11 09:38:07

回答

2

唯一我能想到的是,如果你的模型被命名爲publisher_group,它將檢查這些摺疊。正如你反而與組織一起作爲慣例。如果不是的話,我建議乾脆直接指定路徑作爲一種簡單的解決方案:

<%= render :partial => "publisher_groups/publisher_group", :collection => @organization.groups %> 
+0

哦,聖潔的廢話,我想我知道問題是什麼。 – 2012-07-10 04:01:52

+0

直到現在我還沒有意識到,但是每個組實際上都是子類,就像PublisherGroup等。我認爲他們都會被處理,因爲他們都在組表中,但我可以看到這不是現在案件。任何想法如何處理乾淨? – 2012-07-10 04:05:08

+0

啊我明白了。我不得不承認,我不確定最佳的方式,除了嘗試使用上述的渲染方法。我對activerecord SIT的使用經驗非常少。不是我不得不使用的東西,我想。 – agmcleod 2012-07-10 04:08:33

11

默認情況下,試圖呈現一個積極的模型對象試圖找到一個部分叫做table_name/class_name

尤其是用於STI它將爲每個類尋找不同的模板。這是由路徑返回到部分

to_partial_path實例方法如果覆蓋在組

def to_partial_path 
    'groups/group' 
end 

該方法然後所有的子類將使用相同的局部控制。

+0

感謝兄弟,真棒 – 2015-06-16 09:30:36

相關問題