通过ajax渲染部分内容时条件不起作用

通过ajax渲染部分内容时条件不起作用,ajax,ruby-on-rails-3,Ajax,Ruby On Rails 3,在myindex.js.erb中 $(".div").html("<%= escape_javascript(render('something/some_form')) %>"); $(“.div”).html(“”); 在某个表单.htm.erb中,我的情况不起作用 <% if @variable1 == @variable2 %> show something1 <% else %> show something2 <% end

在myindex.js.erb中

$(".div").html("<%= escape_javascript(render('something/some_form')) %>");
$(“.div”).html(“”);
某个表单.htm.erb中,我的情况不起作用

<% if @variable1 == @variable2 %> 
   show something1
<% else %>
   show something2
<% end %>

展示一些东西
展示一些东西
由于某种原因,当我的js.erb呈现这个片段时,我总是要显示一些东西2。所以这个条件不起作用

<% if @variable1 == @variable2 %> 
   show something1
<% else %>
   show something2
<% end %>
在我的控制器中定义的variable1和variable2


如何使此相等条件起作用?

控制器变量在部分中不可见。请阅读

您需要通过局部变量将这些变量传递给分部:

//e.g locals: {variable1: @variable1, variable2: @variable2}

$(".div").html("<%= escape_javascript(render('something/some_form', locals: {variable1: @variable1, variable2: @variable2})) %>");
//例如局部变量:{variable1:@variable1,variable2:@variable2}
$(“.div”).html(“”);
某种形式

<% if variable1 == variable2 %> 
   show something1
<% else %>
   show something2
<% end %>

展示一些东西
展示一些东西