ruby-on-rails 删除按钮未显示“是否确定?”确认弹出窗口,Rails 7

cgvd09ve  于 2022-12-20  发布在  Ruby
关注(0)|答案(3)|浏览(164)

当管理员单击“删除公园”按钮时,我希望在删除公园之前弹出“你确定吗?”确认对话框。
我读过很多其他使用Rails 7的人成功地在表单中添加了确认消息,如下所示:

<% provide(:title, @park.name) %>

<%= render 'park_details' %>

<div>
  <%- if current_user && current_user.admin? %>
    <%= link_to "Edit this park", edit_park_path(@park) %> |
  <% end %>

  <%= link_to "Back to parks", parks_path %>

  <%- if current_user && current_user.admin? %>
    <%= button_to "Delete park", @park, method: :delete,
        class: "btn btn-danger",
        form: { data: { turbo_confirm: "Are you sure?" } } %>
  <% end %>

</div>

以上对我不起作用。公园被删除没有确认消息。
表单的html呈现如下:

<form data-turbo-confirm="Are you sure?" class="button_to" method="post" action="/en/parks/7"><input type="hidden" name="_method" value="delete" autocomplete="off"><button class="btn btn-danger" type="submit">Delete park</button><input type="hidden" name="authenticity_token" value="XuQsxUyS0LiyYyP_xm1f7XFv9iCkBejRLnSu6DwWOxwQZQVDvkAI_NMRPTuAhLplMbcDZwldwOzmIq_5LqiGnw" autocomplete="off"></form>

此外,如果我使用link_to而不是button_to,公园根本不会被删除(不确定这是否相关,但为了以防万一,将其包含在描述中)。
会不会像这里有人建议的那样,是javascript的问题?Ruby on rails: <%= link_to 'Destroy'... doesn't work, but <%= button_to 'Destroy'... does work perfectly
我是一个初学者,所以不知道什么配置/代码检查。让我知道,如果有更多的细节,我可以张贴,以帮助解决这个问题。

ippsafx7

ippsafx71#

尝试使用javascript

$(document).on 'click', '.park', ->
  if confirm('Are you sure?')
    delete_park($(this).data('url'))
  return


  <%- if current_user && current_user.admin? %>
    <%= button_to "Delete park", @park, method: :delete,
        class: "btn btn-danger del_park",
        form: { data: { turbo_confirm: "Are you sure?" } } %>
  <% end %>
envsm3lx

envsm3lx2#

通过重新安装Turbo解决了这个问题,正如michael-reeves在这里所建议的:https://github.com/rails/rails/issues/44170
$ rails导入Map:安装
$ rails turbo:安装刺激:安装

wljmcqd8

wljmcqd83#

<%= link_to fa_icon('trash'), @blog, data: { turbo_method: :delete,
                          turbo_confirm: "Are you sure you want to delete this post" } %>

这对我很有效。确认消息弹出,删除链接也有效。
下面是destroy的控制器:

def destroy
    @blog.destroy

    respond_to do |format|
      format.html { redirect_to blogs_url, status: :see_other }
    end
  end

“turbo_方法::删除”和“状态::see_other”是关键部分。如果我回答这个问题太晚了,我很抱歉,但这对我的rail7应用程序很有效。我花了很多时间在谷歌上搜索,才最终摆脱了“button_to”的需要。我希望这能帮助到一些人。

相关问题