我有一个控制器方法,它传递整数变量或整数变量数组。我必须在我的.js.erb
文件中查看以使用适当的整数重新分配td
s。如何获取数组当前对象的值并将其传递给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
被命名为'remove_name _':
<% if @position %>
<td id=<%="remove_name_#{@position.to_s}"%>>
<%= @position_str %>
</td>
<% else %>
<td id=<%="remove_name_#{p.to_s}"%>>
<%= @position_str %>
</td>
<% end %>
感谢您的任何建议。
答案 0 :(得分: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文件中,您可以访问变量'index'