如何从布局文件中渲染局部视图?
How can I render a partial view from within a layout file?
为了添加一些上下文,我了解到在视图文件夹中您可以创建一个文件并添加带有“_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"
更新:为我的问题的原因添加了上下文
在这种情况下,我认为您的路径是错误的。将代码更改为
<%= render 'layouts/footer' %>
如果 _footer.hml.erb 在布局文件夹中,那么您可以在以下位置渲染它:../views/layouts/application.html.erb 来自:
<%= render 'layouts/footer' %>
该代码将从 app/views/layouts/_footer.html.erb.
提取部分内容
<%= render :partial => "layouts/footer" %>
为了添加一些上下文,我了解到在视图文件夹中您可以创建一个文件并添加带有“_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"
更新:为我的问题的原因添加了上下文
在这种情况下,我认为您的路径是错误的。将代码更改为
<%= render 'layouts/footer' %>
如果 _footer.hml.erb 在布局文件夹中,那么您可以在以下位置渲染它:../views/layouts/application.html.erb 来自:
<%= render 'layouts/footer' %>
该代码将从 app/views/layouts/_footer.html.erb.
提取部分内容<%= render :partial => "layouts/footer" %>