Как я могу сделать частичное представление из файла макета?
Чтобы добавить некоторый контекст, я узнал, что в папке представления вы можете просто создать файл и добавить частичное с "_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' %>