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

时间:2012-11-07 15:48:40

标签: ajax ruby-on-rails-3

在我的 index.js.erb

$(".div").html("<%= escape_javascript(render('something/some_form')) %>");
some_form.htm.erb

我的条件不起作用

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

出于某种原因,当我的js.erb呈现这个部分时,我总是有 show something2 。所以&lt;%if @ variable1 == @ variable2%&gt;条件不起作用

我的控制器中定义的variable1和variable2

我如何才能使这种条件相同?

2 个答案:

答案 0 :(得分:0)

控制器变量在partials中不可见。请阅读official documentation on partials

答案 1 :(得分:0)

您需要通过本地传递这些变量到部分:

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

$(".div").html("<%= escape_javascript(render('something/some_form', locals: {variable1: @variable1, variable2: @variable2})) %>");

some_form

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