Authentication Rails-重定向到don';我们不能保存历史

Authentication Rails-重定向到don';我们不能保存历史,authentication,browser,devise,ruby-on-rails-6,Authentication,Browser,Devise,Ruby On Rails 6,我正在为我的应用程序使用Desive,我定制了会话控制器,以通过otp代码进行登录,我的控制器: class sessioncontroller重定向->返回。在这种情况下,我可以一步一步返回到前面的URL。我还创建了一个简单的应用程序,它使用Desive而无需任何定制,并且运行良好(不会丢失前面的路径)。目前,我不确定我的代码发生了什么。任何建议都将不胜感激。我找到了原因。它与后端无关。这是由于我的表格: ... 默认情况下,form\u with将data remote属性附加到表单。因

我正在为我的应用程序使用Desive,我定制了会话控制器,以通过otp代码进行登录,我的控制器:

class sessioncontroller
路线:

为用户设计,
路径:“”,
路径名称:{登录:'login',注销:'logout',注册:'signup',注册:'''signup'},
控制器:{会话:'sessions',注册:'registrations',密码:'passwords'}
设计范围:用户做什么
将“/send_otp”张贴到:“sessions#send_otp”
获取“会话/otp_表”
我的看法是:


...
在主页上,我点击登录按钮进入
/login
页面,如果我输入了正确的号码,我将被重定向到otp表单(
会话/otp_表单
),在那里我可以使用otp代码登录。问题出现在这里,当我在otp表单中时,我想通过单击浏览器上的后退返回到上一页(我键入电话号码的登录页),但是浏览器没有返回到上一个URL(/在本例中为login),而是后退两步返回到主页

我检查了浏览器(firefox和chrome),没有存储
登录路径


为了确保问题不是从
重定向到
,我创建了一个简单的表单,然后提交->重定向->返回。在这种情况下,我可以一步一步返回到前面的URL。我还创建了一个简单的应用程序,它使用Desive而无需任何定制,并且运行良好(不会丢失前面的路径)。目前,我不确定我的代码发生了什么。任何建议都将不胜感激。

我找到了原因。它与后端无关。这是由于我的表格:


...
默认情况下,
form\u with
data remote
属性附加到表单。因此,表单将使用Ajax提交。这就是这段历史失败的原因。因此,为了解决我的问题,我通过在表单中添加:
local:true
选项禁用了默认功能。它是有效的


...