Ruby on rails 如何将新定义的变量从js.erb传递到html.erb

Ruby on rails 如何将新定义的变量从js.erb传递到html.erb,ruby-on-rails,ajax,Ruby On Rails,Ajax,我有一个控制器方法,它传递一个整型变量或一个整型变量数组。我必须查看我的.js.erb文件,以使用适当的整数重新分配tds。如何获取数组的当前对象的值并将其传递给html.erb进行渲染 下面是.js.erb文件: <% if @pos_range %> <% @pos_range.each do |p|%> $("td#add_bar_<%= p %>").replaceWith("<%= escape_javascript(r

我有一个控制器方法,它传递一个整型变量或一个整型变量数组。我必须查看我的
.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 %>
谢谢你的建议。

使用每个索引

<% 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 %>

$(“td#add_ubar_uu”).replace为(“'foos/update_ubar_uposition',:locals=>{:id=>@foo.id,:position_ustr=>@position_ustr,:index=>i}))%>;
$(“td#add#bar(按钮)”).replace为“'foos/update(按钮),:locals=>{:id=>@foo.id,:position(按钮)=>@position(按钮)”)%>”;

在您的.html.erb文件中,您可以访问变量“index”

我想这会给我留下最初的问题。即使我试图在html.erb中调用
I
haere,它也不知道我在说什么。似乎.html.erb文件只能从控制器打印变量。我也不需要索引的值。也许我没有把我的问题说清楚。谢谢。为什么需要从html.erb文件调用i?要将变量传递到视图文件中,您应该使用:locals。我想我不明白您想做什么。如果您试图根据不同项目的类型传递不同的项目,可以尝试应用is_?数组,然后根据结果应用不同的条件。
<% 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 %>