Rails 3 удаленная связь с: состояние и mootools - PullRequest
0 голосов
/ 12 апреля 2011

В Rails 2 в link_to_remote была опция: condition, которая позволяла вам указать некоторый javascript, который должен был возвращать true, иначе удаленный запрос не был бы отправлен. Тем не менее, в рельсах 3 кажется, что эта опция была удалена.

То, что я хочу сделать - это иметь форму ajax, но перед отправкой ему необходимо пройти проверку в браузере (это очень нестандартная проверка). По сути, мне нужно иметь возможность установить некоторое условное выражение javascript, чтобы предотвратить отправку формы в случае сбоя проверки - так же, как параметр: condition из rails 2. Есть ли способ снова получить такую ​​же функциональность в rails 3?

Я использую mootools в версии rails.js для mootools. Я просмотрел файл mootools rails.js и не увидел ничего похожего на то, что позволило бы мне указать условный JavaScript. Я что-то упустил?

* примечание: я только что просмотрел исходный файл rails.js по умолчанию, написанный в прототипе. В этом файле есть следующие строки:

var event = element.fire("ajax:before");
if (event.stopped) return false;

Похоже, что в версии прототипа вы можете остановить отправку запроса, прослушав событие "ajax: before" и остановив событие в вашем прослушивателе. Однако я не могу найти ничего подобного в коде mootools rails.js, так что, возможно, это ошибка в файле mootools rails.js?

1 Ответ

0 голосов
/ 12 апреля 2011

link_to_remote был удален из Rails 3. Теперь это link_to :remote => true.И если вы хотите выполнить некоторую проверку js, вы можете использовать что-то вроде этого:

<%= link_to "test", '/test', :id => "test-link", :remote => true  %>

и добавить свою проверку в application.js (в моем примере это Prototype. И это не проблема, сделать этос Mootools, я думаю):

document.observe("dom:loaded", function() {
  $('test-link').observe('click', function(event){
    if your_validation_magic
      event.stop();
  });
});

update : Mootools также имеет это событие: https://github.com/kevinvaldek/mootools-ujs/blob/master/Source/rails.js#L131

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