2013-05-30 29 views
1

我有一個控制器方法可以傳遞整數變量或整數變量數組。我必須查看我的.js.erb文件,以便用適當的整數重新指定td。如何獲取數組當前對象的值並將其傳遞給html.erb以進行呈現?如何將新定義的變量從js.erb傳遞到html.erb

這裏的.js.erb文件:

<% if @pos_range %> 
    <% @pos_range.each do |p|%> 
     $("td#add_bar_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position', :locals => { :id => @foo.id, :position_str => @position_str }))%>"); 
     $("td#add_bar_button_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position_button', :locals => { :id => @foo.id, :position_str => @position_str }))%>"); 
    <% end %> 
<% else %> 
    $("td#add_bar_<%= @position %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position', :locals => { :id => @foo.id, :position_str => @position_str }))%>"); 
    $("td#add_bar_button_<%= @position %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position_button', :locals => { :id => @foo.id, :position_str => @position_str }))%>"); 
<% end %> 

這裏是update_bar_position。如果使用循環中,p導致新td S是名爲「remove_name_」:

<% if @position %> 
    <td id=<%="remove_name_#{@position.to_s}"%>> 
     <%= @position_str %>&nbsp; 
    </td> 
<% else %> 
    <td id=<%="remove_name_#{p.to_s}"%>> 
     <%= @position_str %>&nbsp; 
    </td> 
<% end %> 

感謝您的任何意見。

回答

0

使用each_with_index

<% if @pos_range %> 
<% @pos_range.each_with_index do |p, i|%> 
    $("td#add_bar_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position', :locals => { :id => @foo.id, :position_str => @position_str, :index => i }))%>"); 
    $("td#add_bar_button_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'foos/update_bar_position_button', :locals => { :id => @foo.id, :position_str => @position_str }))%>"); 
<% end %> 

在你.html.erb文件,你可以訪問變量「索引」

+0

我想這給我留下了我原來的問題。即使我試圖在html.erb中調用'我',它也不會知道我在說什麼。看起來.html.erb文件只能從控制器打印變量。另外我不需要索引的價值。也許我沒有清楚地說出我的問題。謝謝。 –

+0

爲什麼你需要從html.erb文件中調用我?要將變量傳遞到視圖文件中,您應該使用:locals 我想我不明白你想要做什麼。如果您嘗試根據其類型傳遞不同的項目,可以嘗試應用is_a?Array,然後根據結果應用不同的條件。 – justclaire