Как отправить дополнительные параметры по ссылке / button_to_remote? - PullRequest
1 голос
/ 11 мая 2009

Ajax Prototype принимает параметр под названием «параметры» с хеш-массивом для параметров ( prototype doc ), который автоматически отправляется в виде переменных GET или POST, но я не смог найти, как добавить элементы к этому массив с использованием метода Rails button_to_remote.

Я мог бы просто добавить параметры к URL-адресу, отправленному методу, но это кажется хакерским ... Есть ли лучшее решение?

Ответы [ 3 ]

3 голосов
/ 11 мая 2009

Я действительно нашел решение! Вы можете передать параметры в функцию, используя параметр: with, например:

<%=button_to_remote "+3", {:url =>task_path(@project, @story, task), :with=>"'actual=3'"}%>

Хитрость в том, что значение для: with является выражением javascript, которое должно возвращать пару ключ-значение в формате URL, например «ключ = значение». Вот почему есть дополнительные кавычки вокруг значения на том же выше.

При необходимости можно также использовать функцию для извлечения информации со страницы:

:with=>"getValuesForPostbackFunction()" 

Функция будет оценена перед отправкой формы.

1 голос
/ 11 мая 2009

Используя button_to_remote, единственный способ отправить параметры следующему действию - поместить их в URI.

button_to_remote предназначен в качестве функционального эквивалента link_to_remote, который также не имеет другого способа добавления параметров.

Если вам нужен более детальный контроль, вам нужно создать полную форму и отправить ее в свое действие.

0 голосов
/ 11 мая 2009

Добавьте скрытые поля ввода в форму, для которой вы вызываете button_to_remote.

<input type="hidden" name="name" value="myValue">
...