ruby-on-rails-4 - empezar - ruby on rails tutorial español
Intentando obtener un POST para devolver 400 malas solicitudes (1)
Tengo un método de creación que crea un nuevo modelo a través de una asociación y esperaba que devolviera una respuesta 400 con texto si no había params en la solicitud POST. Sin embargo, me sale un error.
Esto está en Rails 4.0.2
métodos del controlador:
def create
@cast_profile = current_user.build_cast_profile(cast_profile_params)
if @cast_profile.save
redirect_to cast_profile_path
else
render :edit
end
end
def cast_profile_params
params.require(:cast_profile).permit(:name, :email, :public)
end
Si paso los params todo está bien, pero estoy tratando de probar el mal escenario de solicitud. Aquí está el error:
ActionController::ParameterMissing: param not found: cast_profile
Pude rescatarlo explícitamente pero pensé que se suponía que los parámetros fuertes lo hicieran automáticamente.
El comportamiento es el siguiente:
Manejo de llaves no permitidas
Por defecto, las claves de parámetros que no están permitidas explícitamente se registrarán en el entorno de desarrollo y prueba. En otros entornos, estos parámetros simplemente se filtrarán e ignorarán.
Además, este comportamiento se puede cambiar cambiando la propiedad config.action_controller.action_on_unpermitted_parameters en los archivos de su entorno. Si se establece en: log, los atributos no permitidos se registrarán, si se establece en: raise se generará una excepción.
( fuente )
Sugeriría rescatar de esta excepción con estado 400:
rescue_from ActionController::ParameterMissing do
render :nothing => true, :status => 400
end