首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从rails表单中删除authenticity_token

如何从rails表单中删除authenticity_token
EN

Stack Overflow用户
提问于 2011-02-22 14:45:12
回答 3查看 8K关注 0票数 13

我已经知道了如何在控制器中禁用authenticity_token,但是rails仍然会在表单中创建该字段。当我向其发送表单的服务器需要一组非常具体的字段名称时,我该如何关闭它呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-15 06:03:08

在3.2.x之后的rails中,您可以按照另一个答案中的建议将参数传递到表单生成器中:

代码语言:javascript
复制
form_for @invoice, :url => external_url, :authenticity_token => false do |f|
  ...
<% end %>

在任何rails版本中,您都可以在config/application.rb中全局禁用,如另一个答案所示:

代码语言:javascript
复制
config.action_controller.allow_forgery_protection = false

在rails 3.0.x中,您可以通过覆盖以下方法在控制器中禁用页面加载。不幸的是,似乎没有办法在表单级别做到这一点。

代码语言:javascript
复制
protected
  def protect_against_forgery?
    if ...
      # results in the meta tag being ommitted and no forms having authenticity token
      return false 
    else
      # default implementation based on global config
      return allow_forgery_protection 
    end
  end
票数 17
EN

Stack Overflow用户

发布于 2011-07-29 12:38:08

要在应用程序中禁用它,可以将以下行添加到config/application.rb:

代码语言:javascript
复制
config.action_controller.allow_forgery_protection = false
票数 3
EN

Stack Overflow用户

发布于 2012-02-04 19:56:43

对于外部urls,您可以按如下方式将其转换为:

代码语言:javascript
复制
<%= form_for @invoice, :url => external_url, :authenticity_token => false do |f|
  ...
<% end %>

来源:http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5074945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档