Ruby on rails 渲染局部布局不显示任何内容
我想要的效果是为html框实现一个可重用的组件。我发现人们似乎在使用下面的例子,但这对我不起作用。 我有: 不过,我可以在日志中看到:Ruby on rails 渲染局部布局不显示任何内容,ruby-on-rails,ruby,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3.1,我想要的效果是为html框实现一个可重用的组件。我发现人们似乎在使用下面的例子,但这对我不起作用。 我有: 不过,我可以在日志中看到: Processing by HomeController#index as HTML Rendered layouts/_box.html.erb (0.1ms) Rendered home/index.html.erb within layouts/application (1.2ms) 因此,框布局正在得到处理。它只是没有显示任何东西。 有什么想法吗 我使
Processing by HomeController#index as HTML
Rendered layouts/_box.html.erb (0.1ms)
Rendered home/index.html.erb within layouts/application (1.2ms)
因此,框布局正在得到处理。它只是没有显示任何东西。
有什么想法吗
我使用的是Rails 3.1.3和Ruby 1.9.2-p290。可能您混淆了渲染部分内容和通过content\u生成内容的功能:
# app/views/home/index.html.erb
top
<% content_for :box do %>
Some content
<% end %>
bottom
# app/views/layouts/application.html.erb
<%= yield :box %>
<%= yield %>
# result
Some content
top
bottom
呈现部分内容:
# app/views/home/index.html.erb
top
<%= render 'layouts/box' %>
bottom
# app/views/layouts/_box.html.erb
Here is some content inside the box
# result:
top
Here is some content inside the box
bottom
通过content_为以下内容生成内容:
# app/views/home/index.html.erb
top
<% content_for :box do %>
Some content
<% end %>
bottom
# app/views/layouts/application.html.erb
<%= yield :box %>
<%= yield %>
# result
Some content
top
bottom
你可以做:
# app/views/home/index.html.erb
top
<p>Here is some content</p>
<%= render 'layouts/box' %>
bottom
# app/layouts/_box.html.erb
inside box
通常,布局文件夹用于容器中的布局。如果您需要跨不同控制器使用分部,请将其放置在app/views/shared/_your_partial.html.erb中
更多信息请点击此处:
对于以下各项的产量和含量:
对于partials:
可能您将渲染部分内容和通过内容单元生成内容混为一谈:
# app/views/home/index.html.erb
top
<% content_for :box do %>
Some content
<% end %>
bottom
# app/views/layouts/application.html.erb
<%= yield :box %>
<%= yield %>
# result
Some content
top
bottom
呈现部分内容:
# app/views/home/index.html.erb
top
<%= render 'layouts/box' %>
bottom
# app/views/layouts/_box.html.erb
Here is some content inside the box
# result:
top
Here is some content inside the box
bottom
通过content_为以下内容生成内容:
# app/views/home/index.html.erb
top
<% content_for :box do %>
Some content
<% end %>
bottom
# app/views/layouts/application.html.erb
<%= yield :box %>
<%= yield %>
# result
Some content
top
bottom
你可以做:
# app/views/home/index.html.erb
top
<p>Here is some content</p>
<%= render 'layouts/box' %>
bottom
# app/layouts/_box.html.erb
inside box
通常,布局文件夹用于容器中的布局。如果您需要跨不同控制器使用分部,请将其放置在app/views/shared/_your_partial.html.erb中
更多信息请点击此处:
对于以下各项的产量和含量:
对于partials:
隐藏内容
<%= @var %>
显示内容
所以可能是:
<%= render :layout => 'layouts/box' do %>
<p>Here is some content</p>
<% end %>
你需要什么
隐藏内容
<%= @var %>
显示内容
所以可能是:
<%= render :layout => 'layouts/box' do %>
<p>Here is some content</p>
<% end %>
您需要的。您忘记输出“渲染”调用:
<%= render ... %>
而不是
<% render ... %>
您忘记输出“渲染”调用:
<%= render ... %>
而不是
<% render ... %>
您忘记打印渲染。如果您忘记打印渲染,请使用。使用它并不能真正解决我的问题。也许我不明白。我仍然不知道如何实现我的box组件。这并不能真正解决我的问题。也许我不明白。我仍然不知道如何实现我的box组件。