我正在尝试使用yield和content_for创建动态内容.基本上我有一堆布局.我不想为每个布局创建一堆视图.我想在需要时渲染视图部件.对于代码的不同部分,它是可以的.但我有相同的部分与不同的内容有问题.
在我的application.html.erb中
<%= yield %> <%= yield :name_section %>
在我的show.html.erb中我有;
<% content_for :name_section do %> <b>Name:</b> <%= @post.name %> <% end %>
这是个问题;
如果我想要多个具有不同内容的name_section,该怎么办?我的意思是;我想把:name_section在我的视图中的不同地方用不同的内容.
对于前
<table> <tr> <td> <%= yield :name_section %> </td> </tr> <tr> <td> <%= yield :name_section %> </td> </tr> </table>
有任何想法吗?
谢谢.
Çağdaş
解决方法
我相信你现在要求的是:
# The template <%= render layout: "my_layout" do |customer| %> Hello <%= customer.name %> <% end %> # The layout <html> <%= yield Struct.new(:name).new("David") %> </html>
从:
http://api.rubyonrails.org/classes/ActionView/Helpers/RenderingHelper.html#method-i-_layout_for
希望这有助于其他人寻找相同的解决方案.