如何防止 Rails 7 link_to 的 Turbo 进度条和旋转活动指示器

How to prevent Turbo progress bar and spinning activity indicator from Rails 7 link_to

提问人:Steve Schwedt 提问时间:9/6/2023 更新时间:11/23/2023 访问量:158

问:

我有一个带有 Turbo 和 Stimulus 的 Rails 7 应用程序。我有一个触发控制器操作但不触发渲染或重定向的link_to。基本功能是正确的,但单击该链接会启动浏览器选项卡上的 Turbo 进度条和旋转活动指示器,并且它们永远不会完成。有没有办法阻止它们启动?

该链接在部分使用多个地方来点赞事物。所有 UI 更改都是使用 JavaScript 完成的。

<%= link_to "/#{controller}/#{object.id}/like", data: { "turbo-method": :patch, action: 'click->like#likeTapped', "turbo-frame": "_top" }, class: 'like-link'  do %>

Rails 控制器:

  def like
    current_user.toggle_like!(@post)
  end

我是否可以阻止 Turbo 访问以防止它有活动指示器,或者我可以让 Rails 控制器返回一些不重新加载或更改滚动位置的内容?

Ruby-on-Rails Ruby-on-Rails-7 刺激JS Turbo

评论


答:

0赞 mechnicov 9/6/2023 #1

要完全禁用进度条,请将其样式设置为:visibilityhidden

.turbo-progress-bar {
  visibility: hidden;
}
0赞 everes-sh 11/23/2023 #2

您可以添加帮助程序以使链接发送 AJAX 请求:remote: :true

<%= link_to "/#{controller}/#{object.id}/like", method: :patch, data: { remote: :true, action: 'click->like#likeTapped' }, class: 'like-link' do %>

在控制器中:

  def like
    current_user.toggle_like!(@post)

    respond_to do |format|
      format.js
    end
  end