Ruby on rails 除了使用body标签外,如何在特定页面中禁用Turbolinks?

Ruby on rails 除了使用body标签外,如何在特定页面中禁用Turbolinks?,ruby-on-rails,ruby-on-rails-5,turbolinks,Ruby On Rails,Ruby On Rails 5,Turbolinks,当在body标记中使用“data Turbolinks”=>“false”时,Turbolinks被禁用,可以正常工作,但我们不能在代码中间的某个地方使用body标记,因此在任何其他标记(如div)中尝试使用body标记都不能禁用Turbolinks,那么有没有不使用body标记的方法呢 您可以这样做: 在您的app/helpers/application\u helper.rb文件中,创建一个黑名单turbolinks数组,该数组将以controller/action格式包含需要禁用turbo

当在body标记中使用“data Turbolinks”=>“false”时,Turbolinks被禁用,可以正常工作,但我们不能在代码中间的某个地方使用body标记,因此在任何其他标记(如div)中尝试使用body标记都不能禁用Turbolinks,那么有没有不使用body标记的方法呢

您可以这样做:

在您的
app/helpers/application\u helper.rb
文件中,创建一个黑名单turbolinks数组,该数组将以
controller/action
格式包含需要禁用turbolinks的所有页面。假设您不希望TurboLink出现在欢迎控制器的索引操作、文章控制器的显示操作中:

#app/helpers/application_helper.rb
模块ApplicationHelper
def TurboLink_黑名单_阵列
[“欢迎/索引”、“文章/展示”]
结束
结束
然后在您的
应用程序/views/layouts/application.html.erb
中:

%div.col-md-2
  Last updated (h:m):
  %div
    %body{"data-turbolinks" => "false"}
      %strong= current_user.last_active_at ? local_time(current_user.last_active_at, '%d/%m/%Y %H:%M') : 'N/A'

编辑:或使用单行线:

  <body
    <% if turbolinks_blacklist_array.include?("#{params[:controller]}/#{params[:action]}") %>
      <%= 'data-turbolinks="false"'.html_safe %>
    <% end %>
  >
    <%= yield %>
  </body>


我使用了
erb
格式,但我认为同样的格式可以翻译成
haml
。我从来没有使用过haml。除了使用
body
标记之外,还有什么方法可以实现它吗?@user11350468如果您希望在整个页面上禁用TurboLink,那么我认为这是最好的方法。但我认为你也可以在链接上禁用它们。例如:
<body <%= turbolinks_blacklist_array.include?("#{params[:controller]}/#{params[:action]}") ? 'data-turbolinks="false"'.html_safe : '' %>>


</body>