JavaScriptでURLを変更し、ブラウザーではページ遷移しないようにするには、history.pushStateを使います。Turbolinksが動いている環境でpushStateを使うと、ブラウザーの進む/戻るで挙動がおかしくなります。Turbolinks以外がpushStateしたときページでは、popstateイベントをTurbolinksが処理しないからです。
Aページ -(pushState)-> Bページ -(リンク)-> Cページ -(戻るボタン)-> URLはBだけど画面が変わらない
Turbolinksを使っているときは、次のようにします。/users?name=Taro
に戻ると、turbolinks:load
イベントが発火するようになります。
let path = "/users?name=Taro";
Turbolinks.controller.
pushHistoryWithLocationAndRestorationIdentifier(path, Turbolinks.uuid());
参考: Manage browser history manually for one part of my Turbolinks-enabled Rails 5 app - Stack Overflow