Как изменить: подтвердить или добавить новый метод в link_to UrlHelper? - PullRequest
2 голосов
/ 19 января 2010

Я использую этот код для удаления записи:

<%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %>

Когда я нажимаю «Уничтожить», появится окно с предупреждением и предложит мне уничтожить или нет. Могу ли я изменить: подтвердить вызов AJAX? или я могу добавить: myConfirm в тег link_to для реализации моего собственного: myConfirm? Спасибо.

1 Ответ

4 голосов
/ 19 января 2010

Действительно, вы можете. Создайте свой собственный вспомогательный метод (предлагается) или расширьте вспомогательный link_to по умолчанию (не рекомендуется), чтобы включить ваше пользовательское поведение.

Если вам интересно, можно ли добиться результата, просто передав дополнительную опцию, ответ - нет. Вам на самом деле нужно кодировать вызов AJAX или функцию, а затем создать вспомогательную логику для обработки нового поведения.

Лучше всего избегать взлома самого помощника и создавать ненавязчивый обратный вызов JavaScript, основанный, например, на конкретном классе тегов. Вы можете легко это сделать в jQuery

$("ajax-confirm").click(function(){
  // here send the AJAX request
  // and display the confirm dialog
  var confirm = true;  
  return confirm;
});

<%= link_to "...", "...", :class => "ajax-confirm" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...