我有两个带有选项remote:true的表单;一个向createaction发送Ajax请求,另一个向destroyaction发送Ajax请求
启用JavaScript时所有工作都会被罚款,但如果禁用JavaScript,然后单击,则会出现以下错误:
ActionController::InvalidAuthenticationToken PersonController#创建
显示此错误的原因,以及如何修复它
注意:我使用的是Rails 4
更新
当我使用不带选项remote:true的普通表单时,rails会自动为身份验证令牌插入一个隐藏字段,但当我在表单中使用remote:true时,HTML代码中没有这样的字段。似乎当有remote选项时,Rails会以不同的方式处理身份验证令牌,那么我如何在这两种情况下都能做到这一点呢
奇怪的是,rails 4改变了这种行为。http://www.alfajango.com/blog/rails-4-whats-new/
Rails表单现在不会在表单中呈现CSRF字段,除非您明确将其定义为表单的选项:
<;%[email protected]\u模型的表单:remote=>;真实性:真实性\u令牌=>;真do | f |%>;
<;%结束%>;
添加此选项允许您在关闭Javascript时优雅地降级为HTML回退