ruby-on-rails - form_tag - form_with rails 5
verificar_autenticidad_tÃtulo no ha sido definido (3)
Ruby versión 2.2.4, Rails versión 5.0.0.1.
Me estoy quedando atascado en una parte de un tutorial donde se prueba el inicio de sesión con curl
. Me sale un error
ArgumentError (no se ha definido la devolución de llamada de process_action: Verify_authenticity_token).
Utilicé este código en session_controller:
skip_before_action :verify_authenticity_token, :if => Proc.new { |c| c.request.format == ''application/json'' }
¿Alguien sabe la respuesta?
Compruebe si su ApplicationController
tiene una llamada a protect_from_forgery
siguiente manera:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
Esencialmente, llamar a protect_from_forgery
agrega verify_authenticity_token
a la lista before_filter
, que puede omitir en los otros controladores.
Consulte la documentación de protect_from_forgery
para obtener más información.
Después de actualizar a Rails 5 y desplegar a Heroku, cometí este error. No pude reproducirlo en desarrollo.
En los documentos API se da el ejemplo.
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
end
Para mí, agregar el a unless: -> { request.format.json? }
unless: -> { request.format.json? }
como el anterior arregló mi bomba de pila. raise: false
lamentablemente no lo hizo.
Después de actualizar a Rails 5, llegué a este error. Descubrí que si se llama a skip_before_action
varias veces con el mismo nombre de método, se generará esta excepción.
Mi solución fue agregar el parámetro raise: false
, a la segunda vez que se llamó a skip_before_filter
.
Así se vería así:
skip_before_action :your_method_name, raise: false