6

Rails アプリケーションで確認ボックスをカスタマイズする必要があります。これを見つけて、js コードを application.js に追加しましたが、$.rails が未定義のようです。

application.js ファイルに追加したコードは次のとおりです。

$.rails.allowAction = function(link) {
  if (!link.attr('data-confirm')) {
   return true;
  }
  $.rails.showConfirmDialog(link);
  return false;
};

$.rails.confirmed = function(link) {
  link.removeAttr('data-confirm');
  return link.trigger('click.rails');
};

$.rails.showConfirmDialog = function(link) {
  var html, message;
  message = link.attr('data-confirm');
  html = "<div class=\"modal\" id=\"confirmationDialog\">\n  <div class=\"modal-header\">\n    <a class=\"close\" data-dismiss=\"modal\">Ã</a>\n    <h3>Are you sure Mr. President?</h3>\n  </div>\n  <div class=\"modal-body\">\n    <p>" + message + "</p>\n  </div>\n  <div class=\"modal-footer\">\n    <a data-dismiss=\"modal\" class=\"btn\">Cancel</a>\n    <a data-dismiss=\"modal\" class=\"btn btn-primary confirm\">OK</a>\n  </div>\n</div>";
  $(html).modal();
  return $('#confirmationDialog .confirm').on('click', function() {
    return $.rails.confirmed(link);
  });
};

「Uncaught TypeError: プロパティ 'allowAction' を未定義に設定できません」というエラーが発生しました。

何が悪いかわかりますか?(jquery_ujs gem がインストールされ、正常に読み込まれます)

前もって感謝します、

ジャーコー

4

3 に答える 3

3

必要なもの:

gem 'jquery-rails'

jquery_ujs ではありません。

于 2012-11-13T23:37:48.683 に答える
2

このコードを custom.confirm.js というファイルに入れ、その 2 行を入れます。

//= require jquery_ujs 
//= require custom.confirm.js

application.jsの一番下にあり、うまくいきました、ありがとう!

于 2012-11-14T10:15:05.740 に答える
0

私はちょうど同じ問題を抱えていました.Firefoxではうまくいきましたが、Chromeではうまくいきませんでした. Chrome のキャッシュが原因だったのではないかと推測し、開発サーバーに関連するすべてのブラウザのキャッシュを消去して修正しました。

于 2012-12-31T13:45:05.297 に答える