0
对于我的大部分项目,我使用相同的ole视图作为我的索引页面。 html通常是沿着这条线。使用ERB生成器生成动态ERB
所需的HTML结果:
<h1>Chairs</h1>
<table class="table table-striped">
<thead>
<tr>
<th>Color</th>
<th>Size</th>
<th>Fabric</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<% @chairs.each do |chair| %>
<tr>
<td><%= chair.color %></td>
<td><%= chair.size %></td>
<td><%= chair.fabric %></td>
<td><%= chair.description %></td>
</tr>
<% end %>
</tbody>
</table>`
相当直截了当。我遇到的问题是我创建的生成器使用ERB标签来创建html代码。我需要使用ERB标签来创建ERB标签。
<h1><%= plural_table_name %></h1>
<table class="table table-striped">
<thead>
<tr>
<%- if !options[:fields].empty? -%>
<%- options[:fields].each do |field| -%>
<th><%= field.capitalize %></th>
<%- end -%>
<%- end -%>
</tr>
</thead>
<tbody>
**** <%- @plural_table_name.each do | singular_table_name | -%>
<%- if !options[:fields].empty? -%>
<%- options[:fields].each do |field| -%>
<tr>
**** <td><%= singular_table_name.field %></td>
</tr>
<%- end -%>
<%- end -%>
**** <%- end -%>
</tbody>
</table>
这是我的,但它显然是错误的。 options[:fields]
是一个正常工作的数组,因为<thead>
块显示我需要它。我的问题是创建一个ERB标签,它将返回一个ERB字符串,而不是运行里面的代码。我相信我隔离了这个问题,并注意到****
。我需要这些线显示,但我需要plural_table_name
和singular_table_name
根据表动态更改。我不确定什么是正确的语法,或者甚至可能。任何帮助表示赞赏。
你想分析两次吗?例如解析erb并返回erb然后再解析生成html? – engineersmnky
@engineersmnky基本上,是的。我正在运行我的生成器来为我创建我的html文件。 –