Rails と UJS を使用しています。いくつかのイベントをバインドして、送信前に ajax リンクを無効にし、エラーが発生した場合に再び有効にしたいと考えています。プロセスを処理するために、次の jQuery を作成しました。
$('.post').on('click', 'a[data-toggle="follow"]', function() {
var elem, href;
elem = $(this);
href = elem.attr('href');
return elem.bind('ajax:loading', elem.attr('href', '#')).bind('ajax:error', elem.attr('href', href));
});
コントローラーで意図的に例外をシミュレートすると、次の JS エラーが発生します。
Uncaught TypeError: Object [object Object] has no method 'apply'
なぜこれが起こっているのですか?Ajax 自体は正常に動作します。これが発生するのは、サーバー エラーが発生した場合のみです。
li.subscription
- if signed_in? && current_user.subscribed?(post)
= link_to "Unfollow", [post, current_user.subscriptions.find_by_post_id(post)], method: :delete, remote: true, 'data-toggle' => 'follow'
- else
= link_to "Follow", post_subscriptions_path(post), method: :post, remote: true, 'data-toggle' => 'follow'