5.3 - Oggetti impliciti nei controller

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


I controller, gestendo completamente la componente web dell’applicazione, necessita di accedere ad alcune informazioni strettament.e collegate a questo livello applicativo. Rails permette di accedere a queste informazioni tramite i cosidetti oggetti impliciti: oggetti che esistono all’interno di ciascun controller e che non necessitano di nessuna istanziazione.

Gli oggetti impliciti forniti dal framework sono:

request

Rappresenta la richiesta effettuata dal client. I principali attributi dell’oggetto sono:

params

Un hash (vettore ad indice associativo) che contiene i parametri inviati insieme alla richiesta. Non fa distinzione riguardo al metodo utilizzato.

cookies

Hash rappresentate i cookie inviati dal browser insieme alla richiesta. Eventuali modifiche all’array associativo verranno inviate insieme alla risposta.

response

Oggetto rappresentante la risposta del server. Questo oggetto viene completamente gestito da Rails e normalmente non viene in nessuno modo utilizzato.

session

Hash rappresentante la sessione dell’utente corrente.

headers

Hash rappresentate gli headers (intestazioni) della risposta del server.

Questi oggetti sono accessibili semplicemente accedendo tramite il loro nome. Ecco alcuni esempi

# effettuo due azioni diverse in base al metodo utilizzato
def check_method
  if request.post?
    # salvo l'oggetto su db
  else
    # mostro il form
  end
end
# pseudo azione incaricata di autenticare l'utente corrente
def login
  if User.find_by_username_and_password(params[:username], params[:password])
    if params[:remember_me]
      cookie[:logged] = true
    end
    session[:logged] = true
  end
end

Guida RoR

5.2 – Creiamo il nostro primo controller

Updated on August 20, 2007 06:51 by Ruby Fan (82.53.56.13)