Rails 4在表单提交真实性令牌错误期间使用设计登录/注册

时间:2016-01-16 06:53:30

标签: ruby-on-rails ajax devise authenticity-token

我有一个项目模型。与Project模型和Devise用户模型有一对多的关联。我希望用户在提交Projects表单数据之前使用Devise执行ajax登录。

Ajax登录工作正常。但是,在我尝试提交项目表单后登录后,我收到了真实性令牌错误。我知道这是由于会话令牌更改的更改。但我想知道是否有任何方法可以维持这种用户流程?

1 个答案:

答案 0 :(得分:1)

我想我用一些简单的jQuery代码修复了它。我基本上需要在登录后用新窗体替换父窗体上的现有真实性标记。之前已启用Devise会话方法响应js格式并使文件/devise/sessions/create.js.erb

在同一个文件中,我必须添加以下jQuery代码,以使用登录后生成的新真实性标记替换表单上的现有真实性标记。

$("input[name='authenticity_token'").val("<%= form_authenticity_token %>");