Possiamo ora creare il nostro primo controller che si occuperà di elencare le squadre e di aggiungerne di nuove: usiamo come per i modelli il generator:
script/generate controller Team
Solitamente i controller strettamente associati ad un modello hanno il suo stesso nome.
Lo script genera i seguenti file:- app/controllers/team_controller.rb
- test/functional/team_controller_test.rb
- app/helpers/team_helper.rb
- app/views/team
L’unico file che al momento ci interessa è app/controllers/team_controller.rb che è il controller vero e proprio.
Il generatore ha già aggiunto l’intestazione al file:
class TeamController < ApplicationController end
A noi non resta che definire dei nuovi metodi ognuno per ogni azione che il controller dovrà compiere. Partiamo con l’elenco delle squadre:
def list @teams = Team.find(:all, :order => "name") end
Abbiamo semplicemente invocato il metodo di classe find (visto nel capitolo relativo ad ActiveRecord) e abbiamo associato il risultato ad una variabile d’istanza. Non abbiamo usato una variabile normale perchè in questo caso vogliamo condividere la variabile con la vista (se avessimo infatti scritto teams = Team.find(:all, :order => "name") la variabile non sarebbe stata visibile al di fuori del metodo).