0

私の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がこの部分をレンダリングするとき、私は常に何かを表示しています2 。したがって、<%if @ variable1 == @ variable2%>条件が機能しない

コントローラで定義されたvariable1とvariable2

この等しい条件を機能させるにはどうすればよいですか?

4

2 に答える 2

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 %>
于 2012-11-07T17:48:18.290 に答える
0

コントローラー変数はパーシャル内では表示されません。パーシャルに関する公式ドキュメントを読んでください

于 2012-11-07T16:53:14.953 に答える