Ruby on rails 将_链接到具有多个警报框的RoR

Ruby on rails 将_链接到具有多个警报框的RoR,ruby-on-rails,link-to,Ruby On Rails,Link To,(RoR新手)我的erb文件中有一个指向的链接 <%= link_to 'Delete', workflows_path+"/destroy/#{workflow.id}?folder=#{@folder_id}", :confirm => "Are you sure you want to delete '#{workflow.name}'?"%> “是否确实要删除“#{workflow.name}”?”%> 这将在询问确认消息时提示 我想在确认(按OK)时提示另一个警报

(RoR新手)我的erb文件中有一个指向的链接

<%= link_to 'Delete', workflows_path+"/destroy/#{workflow.id}?folder=#{@folder_id}", :confirm => "Are you sure you want to delete '#{workflow.name}'?"%>
“是否确实要删除“#{workflow.name}”?”%>
这将在询问确认消息时提示

我想在确认(按OK)时提示另一个警报框,询问“是否要删除子文件夹?”并使用“是”或“否”选项,然后将其作为布尔值(或任何类型)传递给我的控制器

(如果他们选择否,我会将子文件夹重定向到父目录)


有更简单的方法吗?

为了获得双重确认,您需要一些javascript

给你的链接一个CSS类,比如“双重检查工作流”

然后将javascript添加到页面中

$(document).ready(function(){
  $("a.double-check-workflows").on('click', function(){

    if confirm("first thing to ask"){
      target_url = $(this).attr("href")
      if confirm("second thing to ask"){
        target_url = target_url+"&your_other_param=1"
      }

      window.location = target_url

    }else{
      return false
    }

  })
})
从链接帮助器中删除:confirm选项,尽管会导致js wil处理该选项

编辑

您应该真正使用routes帮助器来创建完整的url,而不是在发布时将参数作为字符串添加


然后,您可以添加一个默认为false/0的“delete\u sub\u folders”参数,然后在js中用.replace()替换它,以将其设置为true/1,如果第二次确认返回true

为什么要使用“workflows\u path”,然后向其添加一个字符串?谢谢@Friends Systems。这是有道理的。只是想知道更多,当我在jQuery上使用“on”方法时,遇到了“nota function”异常。所以我把它改为click方法($(“a.double-check-workflows”)。单击(function())。例外情况消失了。但是这个函数仍然没有在linkclick上被调用。(我试着用alert语句调试它)。这是我的link\u方法语句。”仔细检查工作流“%>jQuery(文档).ready(函数($){alert(111);$(“a.double-check-workflows”)。单击(函数(){alert(222);if(确认(“第一件要问的事”){target_url=$(this).attr(“href”)if(确认(“第二件要问的事”)){target\u url=target\u url+“&your\u other\u param=1”}window.location=target\u url}else{return false}}});很抱歉使用这种格式。无法控制。在这里,它总是在页面加载时提示111。但是222从未得到提示感谢您的尝试。即使我使用的是Firefox。让我试试看。找到解决方案后会发回。再次感谢