Rails Javascript если еще условие с использованием переменной из контроллера - PullRequest
0 голосов
/ 02 января 2012

Представление

<%= link_to "Link", {:action => "AjaxView",:col => "colname"}, 
            :update => "Ajaxcall", :remote => true %>

Контроллер

  def AjaxView
    @vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(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
   {
     $("#2").text("<%= escape_javascript(render(:partial => "var") %>");
   }

Проблема в том, что эта переменная "col" не получает своюточное значение в файле AjaxView.js.erb и мое условие If else не выполняется.Что мне здесь не хватает?

Ответы [ 3 ]

0 голосов
/ 02 января 2012
{:action => "AjaxView",:col => "colname"}

Это не то, как вы создаете URL для link_to.

Каков маршрут для доступа к методу AjaxView?
Это должно быть что-то вроде: link_to "Link", AjaxView_resources_path(:col => "colname").

И в вашем контроллере вам нужно установить переменную экземпляра @col = params[:col], чтобы иметь возможность использовать ее в вашем представлении.

ps: ваш метод должен называться ajax_view вместо AjaxView.

0 голосов
/ 04 февраля 2012
  if ( @col.to_s == "colName") {
      $("#3").text("<%= escape_javascript(render(:partial => "var") %>");
     }
      elsif ( @col.to_s == "colName1")
     {
     $("#2").text("<%= escape_javascript(render(:partial => "var") %>");
     }
0 голосов
/ 02 января 2012

Локальная переменная col не назначена в AjaxView.js.erb. Я думаю, что вы хотели написать это как params[:col].

Также двойные кавычки вокруг var должны быть одинарными, чтобы хорошо сочетаться с окружающими двойными кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...