2010-10-26 21 views
5

Soy bastante nuevo en Rails y estoy escribiendo un formulario de inicio de sesión. He usado form_tag para pasar el envío del usuario al controlador de la cuenta. Ahora, no quiero que el usuario pueda ingresar sus datos de inicio de sesión a través de una solicitud GET, entonces, ¿cómo puedo verificar que un determinado parámetro sea un parámetro GET o POST?Parámetros de raíles de GET/POST

Gracias de antemano

+0

Véanse también las respuestas a esta pregunta: [http://stackoverflow.com/questions/152585/identify-get-and-post-parameters-in-ruby-on-rails][1] [ 1]: http://stackoverflow.com/questions/152585/identify-get-and-post-parameters-in-ruby-on-rails –

Respuesta

16

En Rails que no tienen la POST o GET parámetros específicos. Usted tiene una solicitud POST o GET. Se puede comprobar como este en su controlador:

request.post? 

o puede comprobar si hay otros verbos HTTP: GET, PUT y DELETE:

request.get? 
request.put? 
request.delete? 

Para obtener más información, consulta esta pieza de la documentación: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Request.html

+3

En los parámetros de Rails siempre se puede acceder a través de 'params [: name]' no importa si fueron POSTed o GETed. – Ariejan

+0

bien, supongo que tendrá que hacer, gracias por la información – alex

+0

El enlace está desactivado, la documentación oficial se movió aquí http://api.rubyonrails.org/classes/ActionDispatch/Request.html –

0

Por supuesto, POST a una URL que incluye un parámetro de consulta, por lo que la respuesta seleccionada podría no ser lo que está buscando. Trate de ver si existe el parámetro en las matrices de solicitud:

if request.GET.include? "param_name" 
    # do something 
end 

También hay request.POST y hay alias (query_parameters para GET y request_parameters para POST) tanto en ActionDispatch::Request:

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-GET

2

Si lo lo que necesita es saber el verbo HTTP que puede solicitar directamente para solicitarlo:

request.request_method