確認ダイアログをカスタマイズしたい。確認ダイアログをカスタマイズする前に、すべてが完璧です。リンクの削除をクリックすると
<%= link_to image_tag("icon_delete.png", :border => 0), user, method: :delete ,data: { confirm: 'Are you sure delete:' + user.email } %>
ブラウザにデフォルトの確認ポップアップが表示され、[OK] を押します。このリンクは、UserController で destroy() を呼び出します。ここで、user.js.coffee にカスタマイズ確認ポップアップを実装します。
$.rails.allowAction = (link) ->
return true unless link.attr('data-confirm')
$.rails.showConfirmDialog(link) # look bellow for implementations
false # always stops the action since code runs asynchronously
$.rails.confirmed = (link) ->
link.removeAttr('data-confirm')
link.trigger('click.rails')
$.rails.showConfirmDialog = (link) ->
message = link.attr 'data-confirm'
html = """
<div class="modal" id="confirmationDialog">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Are you sure Mr. President?</h3>
</div>
<div class="modal-body">
<p>#{message}</p>
</div>
<div class="modal-footer">
<a data-dismiss="modal" class="btn">Cancel</a>
<a data-dismiss="modal" class="btn btn-primary confirm">OK</a>
</div>
</div>
"""
$(html).modal()
$('#confirmationDialog .confirm').on 'click', -> $.rails.confirmed(link)
今回は、リンクの削除をクリックすると -
- ブラウザは、カスタマイズ確認ポップアップ ダイアログまたはデフォルトのポップアップ ダイアログを表示しませんでした
show()
--> What's going on here の代わりに UserController で呼び出されたリンクは、destroy()
カスタマイズ確認ダイアログを実装する前に、すべてが完全に機能していました。route.rb は何も変更していません。
Ruby バージョン 1.9.3 と Rails バージョン 4.0.0 を使用しています。My asset/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
gemfile
gem 'sass-rails', '~> 4.0.0'
gem 'bootstrap-sass', '2.3.2.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
誰でも私を助けることができますか?