Turbo drive form updates are breaking strada native components

Using turbo-ios, I was was able to very quickly convert my web-app to an iOS app in a Rails 7.0.0 app with ruby 3.2.2. I want to use some native menus. So using strada, I converted my top menus to native menus. This mostly works except that successful form submission somehow breaks the nexus between the native components and the bridge controllers so clicking on the native menu icon no longer opens the menu. This despite all the stimulus controllers reconnecting after the successful submission.

I am using Turbo-drive by inserting <%= turbo_include_tags %> in the <head> tag and inserting into the application.js

window.Turbo = Turbo
Turbo.session.drive = true

A typical controller action is

   def create
    @lesson = Lesson.new
    if @lesson = @student.lessons.build(lesson_params)
      flash[:success] = 'Lesson has been posted'
      redirect_to root_path
    else
      @title = 'Post Lesson'
      @user = current_user
      render :new, status: :unprocessable_entity
    end
  end

I am hoping that this is just a matter of missing a configuration step, because if I configure my development server to point to the ip address of my machine everything works fine, i.e. the form submission does not break the native menu.

This server configuration is done by setting

config.asset_host = 'http//:123.566.0.123:3000'

and running the server with rails s -b 0.0.0.0 -p 3000, but still keeping the Swift code url pointing to http://localhost:3000.

It turns out this is an issue with Strada’s handling of redirects. Joe Massilotti has implemented a pull request to fix it. This should be integrated into the main branch fairly soon, but in the mean time, you should point your package to this fix-redirect-issue branch.