以下是完整的错误导致我:
使用{: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对象都是组的子类?
答案 0 :(得分:13)
默认情况下,尝试渲染活动模型对象会尝试查找名为table_name/class_name
特别是对于STI层次结构,它将为每个类寻找不同的模板。这由to_partial_path
实例方法控制,该方法返回部分
如果您在组
上覆盖该方法def to_partial_path
'groups/group'
end
然后所有子类将使用相同的部分。
答案 1 :(得分:2)
我唯一能想到的是,如果你的模型被命名为publisher_group,它将检查那些foldes。因为你正在以团体作为惯例。如果不是这样,我建议直接指定路径作为一个简单的解决方案:
<%= render :partial => "publisher_groups/publisher_group", :collection => @organization.groups %>