1

嗨,我在 Rails 视图中渲染局部时遇到问题。

_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

4 回答 4

2

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

<%= render 'layouts/my_header' %>

这里解释了区别:Rails中ERB中的<%、<%=、<%#和-%>有什么区别?

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

于 2013-06-27T11:16:21.433 回答
1

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

于 2013-06-27T11:15:30.720 回答
1

只需尝试以下代码

<%= render '/layouts/my_header' %>
于 2013-06-27T11:16:53.100 回答
0

Player#index 中的 ActionView::MissingTemplate 显示 C:/Buzzoo/Buzzoo/app/views/player/index.mobile.erb 其中第 2 行出现:缺少带有 {:locale=>[:en] 的部分 /layouts/mobile_header, :formats=>[:mobile], :handlers=>[:erb, :builder, :coffee]}。在以下位置搜索:*“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: <%= render '/layouts/mobile_header' %> 3:4:

@user2527785

上述错误表明 mobile_header 的名称中没有部分。您确定布局中有部分_mobile_header.mobile.erb吗?

于 2013-06-27T12:01:04.310 回答