Rails: помощник прототипа link_to_remote с: с опцией - PullRequest
0 голосов
/ 31 марта 2010

Я пытаюсь получить текущее значение раскрывающегося списка с помощью Prototype и передать его с помощью:

<%= link_to_remote "today", :update => "choices",
    :url => { :action => "check_availability" } , 
    :with => "'practitioner='+$F('practitioner')&'clinic='+$F('clinic')&'when=today'",
    :loading => "spinner.show(); $('submit').disable();",
    :complete   => "spinner.hide(); $('submit').enable();" %>

Однако это работает не так, как ожидалось. Я не могу получить доступ к параметрам в контроллере, так как помощник link_to_remote отправляет такие параметры:

Parameters: {"succ"=>"function () {\n    return this + 1;\n}", "action"=>"check_availability", "round"=>"function () {\n    return __method.apply(null, [this].concat($A(arguments)));\n}", "ceil"=>"function () {\n    return __method.apply(null, [this].concat($A(arguments)));\n}", "floor"=>"function () {\n    return __method.apply(null, [this].concat($A(arguments)));\n}", "times"=>"function (iterator, context) {\n    $R(0, this, true).each(iterator, context);\n    return this;\n}", "toPaddedString"=>"function (length, radix) {\n    var string = this.toString(radix || 10);\n    return \"0\".times(length - string.length) + string;\n}", "toColorPart"=>"function () {\n    return this.toPaddedString(2, 16);\n}", "abs"=>"function () {\n    return __method.apply(null, [this].concat($A(arguments)));\n}", "controller"=>"main"}

Куда я иду не так? Есть ли лучший способ сделать это?

Ответы [ 3 ]

1 голос
/ 31 марта 2010

Попробуйте это

<%= link_to_remote "today", :update => "choices",
    :url => { :action => "check_availability" } , 
    :with => "'practitioner='+$F('practitioner')+&'clinic='+$F('clinic')+&'when=today'",
    :loading => "spinner.show(); $('submit').disable();",
    :complete   => "spinner.hide(); $('submit').enable();" %>

Вот разница

:with => "'practitioner='+$F('practitioner')&'clinic='+$F('clinic')&'when=today'",

Должен измениться на

:with => "'practitioner='+$F('practitioner')**+**&'clinic='+$F('clinic')**+**&'when=today'",

Ссылка: http://firstruby.wordpress.com/2008/11/03/remote_function-or-link_to_remote-with-multiple-parameters-in-ruby-on-rails/

0 голосов
/ 31 марта 2010

Предлагаю сделать так:

<%= link_to_remote "today", :update => "choices",
  :url => { :action => "check_availability" } , 
  :with => "'practitioner='+$('practitioner').value +'&clinic='+$('clinic').value+'&when=today'",
  :loading => "spinner.show(); $('submit').disable();",
  :complete   => "spinner.hide(); $('submit').enable();" %>
0 голосов
/ 31 марта 2010

Спасибо, Салил.

У предложенного вами решения также есть некоторые проблемы (выдает синтаксическую ошибку Javascript). Я предполагаю, что у него та же проблема с цитатами, что и у меня, но я не могу понять. Но решение чисто решает эту проблему и работает гладко:

:with => "$H({ practitioner: $F('practitioner'), clinic: $F('clinic'), 
         when: 'today' }).toQueryString()"

Ссылка: http://www.spacevatican.org/2008/5/17/with-or-without-you-link_to_remote-s-mysterious-parameter

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