如何在特定页面中禁用Turbolinks,而不是使用body标签?

问题描述 投票:2回答:1
%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标签中使用 "data-turbolinks" => "false "时,Turbolinks是被禁用的,并且工作正常,但是我们不能在代码中间的某个地方使用body标签,所以在任何其他标签(如div)中尝试禁用Turbolinks是行不通的,所以有什么方法可以不使用body标签?

ruby-on-rails ruby-on-rails-5 turbolinks
1个回答
1
投票

你可以做这样的事情。

在你的 app/helpers/application_helper.rb 文件,创建一个黑名单turbolinks数组,其中包含所有需要禁用turbolinks的页面,格式为 controller/action. 比如说你不想要涡轮连杆。welcome controller's index action, articles controller's show action:

# app/helpers/application_helper.rb

module ApplicationHelper

  def turbolinks_blacklist_array
    ["welcome/index", "articles/show"]
  end
end

那么在你的 app/views/layouts/application.html.erb:

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

EDIT:或者使用onelines。

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


</body>
© www.soinside.com 2019 - 2024. All rights reserved.