Отсутствует шаблон при рендеринге коллекции с использованием локальных переменных
У меня есть два ресурса 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} %>
Все идет нормально! Код делает то, что я ожидаю.
Но я сталкиваюсь с проблемами, когда я хочу сделать то же самое для моей организации, показать в файле 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"
Почему это и как мне это исправить?
1 ответ
Если вы пытаетесь сделать то же самое частичное в 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
,