fix turbo redirects
This commit is contained in:
parent
d32e71077c
commit
f9ea5e999a
|
@ -1,2 +1,3 @@
|
|||
class ApplicationController < ActionController::Base
|
||||
include Turbo::Redirection
|
||||
end
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
module Turbo
|
||||
module Redirection
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def redirect_to(url = {}, options = {})
|
||||
turbo = options.delete(:turbo)
|
||||
|
||||
super.tap do
|
||||
if turbo != false && request.xhr? && !request.get?
|
||||
visit_location_with_turbo(location, turbo)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def visit_location_with_turbo(location, action)
|
||||
visit_options = {
|
||||
action: action.to_s == "advance" ? action : "replace"
|
||||
}
|
||||
|
||||
script = []
|
||||
script << "Turbo.clearCache()"
|
||||
script << "Turbo.visit(#{location.to_json}, #{visit_options.to_json})"
|
||||
|
||||
self.status = 200
|
||||
self.response_body = script.join("\n")
|
||||
response.content_type = "text/javascript"
|
||||
response.headers["X-Xhr-Redirect"] = location
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6,8 +6,8 @@
|
|||
<%= csp_meta_tag %>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
||||
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
||||
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': 'reload' %>
|
||||
<%= javascript_pack_tag 'application', 'data-turbo-track': 'reload' %>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<%= form_with model: @machine, local: true do |form| %>
|
||||
<%= form_with model: @machine do |form| %>
|
||||
<br>
|
||||
<div>
|
||||
<%= form.label :name %><br>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<%= form_with model: @player, local: true do |form| %>
|
||||
<%= form_with model: @player do |form| %>
|
||||
<br>
|
||||
<div>
|
||||
<%= form.label :name %><br>
|
||||
|
|
Loading…
Reference in New Issue