2014-11-24 4 views
1

У меня есть два ресурса Category и Organization в приложении Rails 4. Я борюсь с частичными рендерингами в сочетании с локальными переменными.Отсутствует шаблон при рендеринге коллекции с использованием локальных переменных

У меня есть файл 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, вам необходимо изменить ваш render звонок в шаблон вашей организации show.

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

app/views/organizations/show.html.erb шаблон будет иначе искать файл в app/views/organizations/_category.html.erb.

+0

Вздох, я знаю, что я пытался это сделать, но, должно быть, я сделал это на экране категории или что-то в этом роде. Так или иначе, теперь это работает. Благодаря! – Snail