2010-08-02 54 views
0

我有一个关于最小化我正在使用的一些代码的问题。我使用map-fields plugin/gem来允许我的用户选择CSV文件中的哪些字段将映射到模型中的属性。Ruby on Rails编码效率 - 将CSV数据映射到模型

map-fields with upload

的地图领域的插件使用一个选择对象的名称在插件来确定的CSV列匹配了。这是我现在的代码,以获得全部集成。

<% i = 1 %> 
    <% @rows[0].each do |row| -%> 
     <tr> 
     <td><%= select_tag "fields[#{i}]", options_for_select(@fields), :include_blank => true, :class => 'field_options' %></td> 
     <td><%= h(row) %></td> 
     </tr> 
     <% i += 1 %> 
    <% end -%> 

我要清理这个了一下,而不是使用“我”,我想用一些花哨的Ruby代码,使它看起来干净。

有什么想法?

回答

1

你究竟是什么意思?您可以通过使用each_with_index(http://ruby-doc.org/core/classes/Enumerable.html#M003137

<% @rows[0].each_with_index do |row,i| -%> 
    <tr> 
    <td><%= select_tag "fields[#{i}]", options_for_select(@fields), :include_blank => true, :class => 'field_options' %></td> 
    <td><%= h(row) %></td> 
    </tr> 
<% end -%> 

但除此之外,除去我,我不知道几分花哨的代码,你正在寻找...

+0

花哨的意思,我想能够处理这种没有声明变量'我'。 这是我需要的提示。 谢谢 – Ryan 2010-08-02 20:36:46