Ruby On Rails渲染部分

时间:2013-06-27 11:08:24

标签: ruby-on-rails view render partial

您好我在rails视图中渲染部分时遇到问题。

我在views / layouts目录中创建了一个名为_my_header.html.erb的部分。

然后在名为index.html.erb的视图中的另一个文件夹中的另一个文件中添加了:

 <% render 'layouts/my_header' %>

我把它放在一个html标签里面。无论如何,我收到此错误:

ActionView::MissingTemplate in User#index

Showing C:/Buzzoo/Buzzoo/app/views/user/index.erb where line #2 raised:
Extracted source (around line #2):

1: <html>
2:  <% render 'layouts/my_header' %>
3: 
4:  <body>

4 个答案:

答案 0 :(得分:2)

您在其周围使用了错误的ERB标记,<% %>用于执行代码,但<%= %>用于打印代码。 所以这是正确的代码:

<%= render 'layouts/my_header' %>

这里解释了不同之处:What is the difference between <%, <%=, <%# and -%> in ERB in Rails?

官方文档:http://api.rubyonrails.org/classes/ActionView/Base.html

答案 1 :(得分:1)

<%= render 'layouts/my_header' %>当您希望ruby代码在模板中显示smth时,您需要使用<%= %>而不是<% %>

答案 2 :(得分:1)

试试以下代码

<%= render '/layouts/my_header' %>

答案 3 :(得分:0)

  

Player#index中的ActionView :: MissingTemplate显示   C:/Buzzoo/Buzzoo/app/views/player/index.mobile.erb第2行   已凸显:缺少部分/布局/ mobile_header {{locale =&gt; [:en],   :formats =&gt; [:mobile],:handlers =&gt; [:erb,:builder,:coffee]}。搜索   in:*“C:/ Buzzoo / Buzzoo / app / views”*   “C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/devise-2.1.2/app/views”   提取的来源(第2行):1:2:&lt;%=渲染   '/ layouts / mobile_header'%&gt; 3:4:

@ user2527785

以上错误指定mobile_header名称中没有部分内容。您确定布局中有部分 _mobile_header.mobile.erb 吗?