删除带有 span 标记的功能,link_to不起作用。它去显示操作而不是销毁 - Administrate 0.16.0 和 rails 6.1

Delete Functionality with span tag and link_to is not working. It goes to show action instead of destroy - Administrate 0.16.0 and rails 6.1

提问人:Pratha 提问时间:8/1/2023 最后编辑:Pratha 更新时间:8/2/2023 访问量:28

问:

我正在使用 Administrate gem 版本 0.16.0,我的 Rails 版本是 6.1.3.1

在我的记录列表中,我有一个垃圾桶图标,单击应删除哪条记录。但不知何故,它发送了一个 GET 请求并进入控制器的 show 操作而不是删除。

我知道 Stackoverflow 上有类似类型的问题,但我找不到他们使用 span 标签或任何在link_to内包含删除符号的问题。

以下是我的代码:

<td><% if valid_action? :destroy, collection_presenter.resource_name %><%= link_to(
    [namespace, resource],
    class: "text-color-red",
    method: :delete,
    data: { confirm: "This alert contains #{resource.alert_details.count} alert details. Are you sure you want to delete it?" },
            title: "Delete",
 ) do %>
     <span class="material-icons">
       delete
     </span>
 <% end if show_action? :destroy, resource %>
<% end %></td>

到目前为止,我已经尝试删除确认对话框,并看到它工作正常。但我想保留确认对话框。然后我尝试删除 span 标签并仅添加文本“delete”,它起作用了。所以基本上使用 span 标签,它有一些问题,它不会发送删除请求。

我不需要添加rails-ujs,因为它已经存在于application.js包中,因为我的rails版本是6.1。

另外,我尝试过button_to但仍然不起作用。

为此代码呈现的 HTML 如下所示:

<a class="text-color-red" data-confirm="This alert contains 0 alert details. Are you sure you want to delete it?" data-turbo-method="delete" title="Delete" rel="nofollow" data-method="delete" href="/admin/alerts/67">
            <span class="material-icons">
              delete
            </span>
</a>
HTML erb ruby-on-rails-6.1 管理Html Ruby-on-Rails

评论

0赞 Unixmonkey 8/1/2023
如果您指定了 ,并且它以 GET 的形式到达您的服务器,那么 rails-ujs 不会拦截它。如果您加载了 Turbo JS,您可以尝试使用method: :deletelink_to ... data: { 'turbo-method': :delete }
0赞 Pratha 8/2/2023
@dbugger我已经添加了呈现的 HTML。你只能看看我的问题。
0赞 Pratha 8/2/2023
@Unixmonkey感谢您的建议。但它没有用

答: 暂无答案