我正在制作一个简单的博客应用程序,其中包含许多文章。我成功地为每篇文章创建了一个删除按钮,并使用浏览器的默认确认弹窗:
<%= link_to 'Delete' , article, method: :delete, data: { confirm: 'Are you sure?' } %>
我现在正尝试使用Bootstrap模态框来创建自定义的删除确认框。
Bootstrap模态框已经显示出来了,但是它却删除了错误的文章。它总是删除最上面(第一篇)的文章。
版本:
- Bootstrap 4
- Rails 5.1.4
代码:
application.js
// app/assets/javascripts/application.js
//= require rails-ujs
//= require jquery3
//= require popper
//= require bootstrap-sprockets
//= require_tree .
index.html.erb
<!-- app/views/articles/index.html.erb -->
<div class="container">
<h1>My Blog</h1>
<!-- Render Articles -->
<%= render @articles %>
</div>
_article.html.erb
<!-- app/views/articles/_article.html.erb -->
<div class="row">
<div class="col-sm-8">
<div class="card mb-3">
<div class="card-body">
<h4 class="card-title"><%= article.title %></h4>
<p class="card-text"><%= @markdown.render(article.body).html_safe %></p>
</div>
<div class="card-footer">
<!-- Delete Button showing the modal -->
<button type="button" class="btn btn-outline-danger"
data-toggle="modal" data-target="#exampleModal">
Delete
</button>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Delete Confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Are you sure?
</div>
<!-- Delete button in the footer -->
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Cancel</button>
<%= link_to 'Delete', article, method: :delete, class: 'btn btn-outline-danger' %>
</div>
</div>
</div>
</div>
</div>
渲染视图:
这是文章视图:
删除模态框弹出,但删除了错误的内容!不知何故,所有删除按钮都指向第一篇文章。
我是 Ruby on Rails 的新手,请帮忙!