Я разработал, как отключить authenticity_token в контроллере, но рельсы все еще создают поле в формах. Как отключить это, поскольку сервер, на который я отправляю форму, нуждается в очень специфическом наборе имен полей.
Как удалить аутентификацию_token из рельсовых форм
Ответ 1
В рельсах после 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
Ответ 2
Чтобы отключить его в приложении, вы можете добавить эту строку в свой config/application.rb:
config.action_controller.allow_forgery_protection = false
Ответ 3
Для внешних URL-адресов вы можете повернуть эту форму следующим образом:
<%= form_for @invoice, :url => external_url, :authenticity_token => false do |f|
...
<% end %>
Источник: http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for