Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Turbolinks.visit不在同一页面上触发_Ruby_Ruby On Rails 5_Turbolinks - Fatal编程技术网

Ruby Turbolinks.visit不在同一页面上触发

Ruby Turbolinks.visit不在同一页面上触发,ruby,ruby-on-rails-5,turbolinks,Ruby,Ruby On Rails 5,Turbolinks,我有一个显示嵌入式tableau仪表板的页面,在同一页面上有一个下拉列表,用户可以使用它加载不同的仪表板,单击我调用的下拉选项Turbolinks.visit(url,{action:'replace'}) 步骤1:用户第一次打开仪表板时,链接将被删除 步骤2:用户单击下拉菜单中的一个下拉选项“我的自定义视图”,即Turbolinks。执行visit,url将被删除 第3步:用户现在可以与仪表板交互,应用不同的过滤器,这将导致与第2步的视图完全不同的视图,但这不会更改URL,而是更改视图 步骤

我有一个显示嵌入式tableau仪表板的页面,在同一页面上有一个下拉列表,用户可以使用它加载不同的仪表板,单击我调用的下拉选项
Turbolinks.visit(url,{action:'replace'})

步骤1:用户第一次打开仪表板时,链接将被删除

步骤2:用户单击下拉菜单中的一个下拉选项“我的自定义视图”,即
Turbolinks。执行visit
,url将被删除

第3步:用户现在可以与仪表板交互,应用不同的过滤器,这将导致与第2步的视图完全不同的视图,但这不会更改URL,而是更改视图

步骤4:用户现在尝试再次单击下拉选项“我的自定义视图”以返回早期版本的视图,但是
Turbolinks.visit
不会打开URL,因为URL没有更改

我的问题是如何强制
Turbolink.visit(url,{action:replace})
始终访问该页面,即使它位于同一页面上

这方面的任何帮助都会很好

更新1:我需要使用TurboLink重新加载同一页面。如果我提供相同的页面url,则不会触发Turbolink.visit,如果我提供不同的url,则它会起作用


如何使用Turbolinks.visit访问/重新加载同一页面。

它按预期工作,我有下面的代码阻止在同一页面上重新加载

$(document).on('turbolinks:before-visit', function(event) {
            if (event.originalEvent.data.url == window.location.href) {
                event.preventDefault();
            }
        });
所以“通过下拉项更改url”可以工作(如步骤2所述),但在您使用过一次并且页面/url更改后就不工作了,如果我理解正确的话?如果是这样的话,您能否描述一下如何初始化下拉行为(链接),以及在布局(页眉或页脚)中包含Java脚本的位置?