Как я могу сделать частичное представление из файла макета?

Чтобы добавить некоторый контекст, я узнал, что в папке представления вы можете просто создать файл и добавить частичное с "_partialname", например, "_login". в моем файле index.html.erb или любом другом файле, который я обычно размещаю:

<%= render "login" %>

Что я и сделал для папки раскладок, но она не работает.

Ниже приведен фрагмент моего файла /views/layouts/application.html.erb, В той же папке макетов я создал _footer.html.erb, который я хочу, чтобы все мои представления имели, но когда я пробую следующее, это выдает мне ошибку:

</head>

<body>
<%= yield %>

<%= render "footer" %>
 </body>
</html>

Добавление сообщения об ошибке:

Missing partial static/_footer, application/_footer with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}. 
Searched in:
 * "/Users/rogerperez/DevProjects/Property-Pal/app/views"

Обновление: добавлен контекст по причине моего вопроса

3 ответа

Решение

Я считаю, что ваш путь не так в этом случае. Измените код на

<%= render 'layouts/footer' %>

Этот код извлечет часть из app/views/layouts/_footer.html.erb.

<%= render :partial => "layouts/footer" %>

Если _footer.hml.erb находится в папке раскладок, вы можете отрендерить его в: ../views/layouts/application.html.erb:

<%= render 'layouts/footer' %>
Другие вопросы по тегам