4

这是抛出我的完整错误轨道:

缺少带有 {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]} 的部分 publisher_groups/publisher_group。搜索: blah blah blah

在组织显示视图中:

<%= render @organization.groups %>

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

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

关系存在于组模型和组织模型中。错误引用 PublisherGroup。Group 模型具有三种类型的 STI,到目前为止,除了指定类型之外什么都不做。由于所有 @organization.group 对象都是组的子类,我怎样才能让这个渲染正常运行?

4

2 回答 2

14

默认情况下,尝试渲染一个活动模型对象会尝试找到一个名为table_name/class_name

特别是对于 STI 层次结构,它将为每个类寻找不同的模板。这由to_partial_path返回部分路径的实例方法控制

如果您在组上覆盖该方法

def to_partial_path
  'groups/group'
end 

然后所有子类将使用相同的部分。

于 2012-07-10T07:17:56.143 回答
2

我能想到的唯一一件事是,如果您的模型名为 publisher_group,它将检查这些文件夹。相反,您将使用团体作为惯例。如果不是这种情况,我建议直接指定路径作为一个简单的解决方案:

<%= render :partial => "publisher_groups/publisher_group", :collection => @organization.groups %>
于 2012-07-10T04:00:03.810 回答