如何修改Active Admin中删除按钮的确认提示信息?
修改Active Admin列表页删除按钮的确认提示信息
你不需要移除默认的destroy动作,直接修改删除按钮的确认提示即可,以下两种方案都可以解决问题:
方案一:自定义动作列(手动添加按钮)
在app/admin/authors.rb的index块中,重写动作列,保留编辑按钮并自定义删除按钮,确保使用正确的删除路由:
ActiveAdmin.register Author do index do # 这里可以添加你需要的其他列 column :name column :email # 自定义动作列 actions do |author| # 保留默认编辑按钮 item "编辑", edit_admin_author_path(author), class: "member_link edit_link" # 自定义删除按钮,设置确认提示并指定正确的删除路由和请求方法 item "删除", admin_author_path(author), method: :delete, data: { confirm: "你确定要删除这个作者吗?" }, class: "member_link delete_link" end end end
方案二:全局配置删除动作的确认提示
更简洁的方式是通过config.destroy_action直接覆盖该资源删除按钮的确认属性,无需重写整个动作列:
ActiveAdmin.register Author do # 配置删除动作的确认提示 config.destroy_action = ->(resource) { { method: :delete, data: { confirm: "确认要删除该作者吗?删除后无法恢复!" } } } index do # 保留默认的动作列即可 actions # 其他列配置... end end
为什么之前的方法会失效?
你之前用actions :all, :except => [:destroy]会移除Active Admin默认生成的destroy路由映射,导致点击删除按钮时找不到对应的处理路径。上面两种方案都不会移除默认路由,只是修改按钮的确认提示文本,因此可以正常执行删除操作。
内容的提问来源于stack exchange,提问作者Smile
相关产品推荐
相关产品推荐

