1

Twitter Bootstrap 2.1.1 に切り替えています。

削除するボタンのあるモーダルがありますが、機能しません。以前のブートストラップ バージョンでは問題なく動作していました。Rails のバージョンは 3.1 です

ここにコードがあります

<a title="<%= t('delete') %>" id="delete" class="label" href="#myModal-<%= post.id %>" data-toggle="modal"><%= t('delete') %></a>

モーダル

<div class="modal hide" id="myModal-<%= post.id %>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel"><%= t('delete_this_question') %></h3>
    </div>
    <div class="modal-body">
        <p><%= raw post.text %></p>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true"><%= t('cancel') %></button>
        <%= link_to(t('delete'), { :controller => 'posts', :action => 'destroy', :id => post.id } ,:method => :delete, :class => 'btn btn-primary') %>
    </div>
</div>

しかし、うまくいきません。Rails は GET を受け取り、投稿を表示しますが、それを破棄しません。

何か案が?ありがとう

4

1 に答える 1

7

http://rors.org/demos/custom-confirm-in-railsで次の解決策を見つけました

ビューにカスタムの削除リンクやモーダル コンテンツがなくても、これを完全に控えめに使用できます。したがって、私の見解では、標準のRailsリンクがあります(Bootstrapスタイルを使用するためにいくつかのクラスを追加するだけです):

link_to 'delete', post, method: :delete, confirm: 'Are you sure?', class: 'btn btn-mini btn-danger'

そして /app/assets/javascripts/bootstrap-confirmation.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">&times;</a>
             <h3>Request confirmation</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-danger confirm">Confirm</a>
           </div>
         </div>
         """
  $(html).modal()
  $('#confirmationDialog .confirm').on 'click', -> $.rails.confirmed(link)

モーダルに投稿固有の詳細がさらに必要な場合は、削除リンクに data- 属性としていつでも含めることができます (data-confirm確認メッセージを表示するために使用されるのと同じように)。

于 2012-09-14T18:14:33.460 に答える