2010-10-26 18 views
5

Sono abbastanza nuovo su Rails e sto scrivendo un modulo di accesso. Ho usato form_tag per passare l'invio dell'utente al controller dell'account. Ora, non voglio che l'utente sia in grado di inserire i propri dettagli di accesso tramite una richiesta GET, quindi come posso verificare che un determinato parametro sia un parametro GET o POST?Parametri Rails da GET/POST

Grazie in anticipo

+0

vedi anche risposte a questa domanda: [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 –

risposta

16

In Rails non si dispone POST specifico o ottenere i parametri. Hai una richiesta POST o GET. È possibile controllare in questo modo nel controller:

request.post? 

o si può verificare la presenza di altri verbi HTTP: GET, PUT e DELETE:

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

Per maggiori informazioni, consultare questo pezzo della documentazione: http://railsapi.com/doc/rails-v2.3.8/classes/ActionController/Request.html

+3

In Rails i parametri sono sempre accessibili tramite 'params [: name]' non importa se erano POSTATI o OTTENUTI. – Ariejan

+0

ok Suppongo che dovrà fare, grazie per le informazioni – alex

+0

Il link è inattivo, la documentazione ufficiale è stata spostata qui http://api.rubyonrails.org/classes/ActionDispatch/Request.html –

0

Si potrebbe naturalmente POST a un URL che includeva un parametro di query, quindi la risposta selezionata potrebbe non essere quella che stai cercando. Prova a controllare se il parametro esiste nelle matrici richiesta:

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

C'è anche request.POST e ci sono alias (query_parameters per GET e request_parameters per POST) sia per in ActionDispatch::Request:

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

2

Se è necessario conoscere il verbo HTTP che è possibile richiedere direttamente alla richiesta:

request.request_method 
Problemi correlati