2014-11-24 86 views
1

我在Rails 4应用程序中有两个资源CategoryOrganization。我在渲染局部变量和局部变量的结合上挣扎。使用局部变量渲染集合时缺少模板

我有一个文件app/views/categories/_category.html.erb

<li>link_to category.name, category</li> 

app/views/categories/show.html.erb我可以用

<%= render @categories %> 

这部分要通过一个局部变量来表示渲染,粗体字当前类别列表中,我可以将方法调用更改为

<%= render partial: "category", collection: @categories, as: :category, locals: {active_category: @category} %> 

到目前为止s嗯不错!代码完成了我期望的功能。

但是当我想为组织的展示视图在文件app/views/organizations/show.html.erb中做同样的事情时遇到问题。没有任何局部变量的原始渲染调用工作正常,即render @categories。然而第二个电话给我的错误

Template is missing 

Missing partial organizations/_category, application/_category with { 
    :locale=>[:en], 
    :formats=>[:html], 
    :variants=>[], 
    :handlers=>[:erb, :builder, :raw, :ruby, :coffee] 
}. 

Searched in: 
    * "/home/snail/.rvm/gems/ruby-2.1.2/gems/web-console-2.0.0.beta4/lib/action_dispatch/templates" 
    * "/home/snail/work/PROJECTNAME/app/views" 
    * "/home/snail/.rvm/gems/ruby-2.1.2/gems/web-console-2.0.0.beta4/app/views" 
    * "/home/snail/.rvm/gems/ruby-2.1.2/gems/devise-3.4.0/app/views" 

这是为什么,我该如何解决它?

回答

0

如果您要在app/views/categories/_category.html.erb上呈现相同的部分,则需要更改您组织的show模板的render呼叫。

render partial: "categories/category", collection: @categories, ... 

app/views/organizations/show.html.erb模板,否则将寻找一个文件在app/views/organizations/_category.html.erb

+0

叹了口气,我知道我试图做到这一点,但我必须做到它的类别视图或东西。无论如何,现在它的工作。谢谢! – Snail 2014-11-24 21:33:09