2010-08-02 98 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