<%= link_to image_tag("icon_delete.png", :border => 0), user, method: :delete ,data: { confirm: 'Are you sure delete ' + user.email } %>
ユーザーがこのリンクをクリックすると、単に表示するのではなく、カスタムの確認ダイアログが必要ですconfirm('Are you are')
。
http://lesseverything.com/blog/archives/2012/07/18/customizing-confirmation-dialog-in-rails/など、多くのスレッドを読みました。しかし、問題が発生しましたSprockets::EncodingError
。
より良い解決策はありますか?
アップデート
カスタマイズされた確認ダイアログを実装する前はすべて問題ありませんでした.エンコードが成功した後, 今回は
<%= link_to image_tag("icon_delete.png", :border => 0), user, method: :delete ,data: { confirm: 'Are you sure delete ' + user.email } %>
実際、削除アイコンをクリックすると、ポップアップが表示されず、このリンクは UserController で destroy() を呼び出しませんでした。UserController で show() を呼び出しました。ここで何が起こっているのでしょうか?
$.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)
ファイル route.rb root :to => "users#index"
devise_for :users, :controllers => {:registrations => "users"}
resources :users
match '/admin', to: 'users#admin', via: 'get'