输出动态创建名称的标签的最佳方法是什么?

时间:2009-12-05 16:11:11

标签: ruby-on-rails ruby

在我的Rails应用程序中,我有一个部分被递归调用。

在部分中,我想输出<h1><h2><h3> ...取决于级别。 (当然是6级上限)

这样的事情:

<h1>
  <p><%= ... %></p>
  <% books.each do |book| %>
      ...
  <% end %>
</h1>

------->
<% open_h(1) %>
  <p><%= ... %></p>
  <% books.each do |book| %>
      ...
  <% end %>
<% close_h(1) %>

现在我把这两个函数作为助手一起攻击,但这真的是最优雅的方法吗?

2 个答案:

答案 0 :(得分:4)

您可以执行类似

的操作
# _book.html.erb

<% content_tag "h#{level}" do %>
  <p><%= ... %></p>
  <% if level < 6 %>
  <%= render :collection => books, :locals => { :level => level + 1 }
  <% end %>
<% end %>

# action.html.erb

<%= render :partial => :book, :collection => @books, :locals => { :level => 0 } %>

答案 1 :(得分:1)

我不确定我是否得到了您想要的内容,但请查看content_tagtag帮助,并分享一些最终代码,以便我们提供更多帮助。