我有一个ActiveRecord对象的关联代理(同一个类),我需要为所有这些对象构建一个表单。
如果只有客户没有请求那些位于水平可滚动表中且每个记录字段位于不同的列中,那么这将非常简单。
这就是我目前正在做的事情:
<%= form_tag submission_path do %>
<% object_forms = @objects.map {|o| fields_for("object[#{o.to_param}]", o) {|f| break f}} %>
<table>
<% @attributes.each do |attr| %>
<tr>
<% object_forms.each do |f| %>
<td><%= f.text_field attr %></td>
<% end %>
</tr>
<% end %>
</table>
<%= submit_tag 'Save' %>
<% end %>
这非常有效,但是我并不热衷于将表单构建器存储在数组中。迭代次数也很大(实际上这不应该是一个问题,因为他们不希望这里有大数字,但一般来说这可能是一个问题)有没有更好的方法来实现它?