Контроллер:
def AjaxView
@vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
@col = params[:col]
respond_to do |format|
format.js { render :layout=>false }
end
end
AjaxView.js.erb
if('<%= @col %>' == 'colName'){
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
} else if('<%= @col %>' == 'colName2'){
$("#2").text("<%= escape_javascript(render(:partial => "var1")) %>");
}
Просмотр частично:
_var.html.erb
<%= @vars[0].colName %>
_var1.html.erb
<%= @vars[0].colName2 %>
Если я изменю этот код
$("#3").text("<%= escape_javascript(render(:partial => "var") %>");
на alert ("hi_one"); и
$("#2").text("<%= escape_javascript(render(:partial => "var1") %>");
до alert ("hi_two");
работает нормально.
но когда я ставлю вышеуказанный код, он запускает оба кода каждый раз, а неконечно, почему, он компилируется или как?и какой выход?
Вывод рендеринга:
Рендеринг test / _var.html.erb (16,0 мс)в 38 мс
ActionView :: Template :: Error (отсутствует атрибут: colName): 1: <% = @ vars [0] .col%>
Вывод Javascripty в Firebug составляет 500 ошибок