Ruby On Rails 部分渲染

Posted

技术标签:

【中文标题】Ruby On Rails 部分渲染【英文标题】:Ruby On Rails Rendering Partial 【发布时间】:2013-06-24 20:36:25 【问题描述】:

您好,我在 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>

【问题讨论】:

可以分享一下你的部分内容吗?我想知道错误是否存在,尽管有错误消息。 【参考方案1】:

您在其周围使用了错误的 ERB 标签,&lt;% %&gt; 用于执行代码,而&lt;%= %&gt; 用于打印代码。 所以这是正确的代码:

<%= render 'layouts/my_header' %>

这里解释了区别:What is the difference between <%, <%=, <%# and -%> in ERB in Rails?

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

【讨论】:

【参考方案2】:

&lt;%= render 'layouts/my_header' %&gt; 当您希望 ruby​​ 代码在模板中显示时,您需要使用 &lt;%= %&gt; 而不是 &lt;% %&gt;

【讨论】:

【参考方案3】:

试试下面的代码

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

【讨论】:

ActionView::MissingTemplate in Player#index 显示 C:/Buzzoo/Buzzoo/app/views/player/index.mobile.erb 其中第 2 行出现:缺少部分 /layouts/mobile_header 和 : locale=>[:en], :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: 3: 4: 5: 请查看链接***.com/questions/339130/…【参考方案4】:

ActionView::MissingTemplate in Player#index 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: 3: 4:

@user2527785

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

【讨论】:

以上是关于Ruby On Rails 部分渲染的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails(三)隐藏部分视图

在 Ruby on Rails 3.2+ 中流式传输部分视图

我在哪里可以编写要在部分中使用的方法? (Ruby on Rails)

如果在 ruby​​ on rails 中选中了复选框,则显示表单的其余部分

如何让引导选项卡链接链接到 ruby​​ on rails 中的另一个部分文件以显示内容?

在 Ruby on Rails 中,如何渲染 JSON?