Как мне удалить authenticity_token из форм рельсов - PullRequest
12 голосов
/ 22 февраля 2011

Я разработал, как отключить authenticity_token в контроллере, но rails все еще создает поле в формах.Как мне отключить это как сервер, на который я отправляю форму, нужен очень специфический набор имен полей.

Ответы [ 3 ]

16 голосов
/ 15 июля 2012

В rails после 3.2.x вы можете передать параметр в генератор форм, как предложено в другом ответе:

form_for @invoice, :url => external_url, :authenticity_token => false do |f|
  ...
<% end %>

В любой версии rails вы можете отключить глобально в config / application.rb, как вдругой ответ:

config.action_controller.allow_forgery_protection = false

В rails 3.0.x вы можете отключить загрузку страницы в контроллере, переопределив следующий метод.К сожалению, кажется, что нет способа сделать это на уровне формы.

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
3 голосов
/ 29 июля 2011

Чтобы отключить его в вашем приложении, вы можете добавить эту строку в ваш config / application.rb:

config.action_controller.allow_forgery_protection = false
1 голос
/ 04 февраля 2012

Для внешних URL вы можете включить это для каждой формы следующим образом:

<%= form_for @invoice, :url => external_url, :authenticity_token => false do |f|
  ...
<% end %>

Источник: http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...