Forum: Italian Ruby user group [Rails] Aiutino per definizione routes

969047aea93d01a9cc636e9867f4ec0f?d=identicon&s=25 Serafino Picozzi (serpico)
on 2013-10-02 13:18
Salve a tutti, vi chiedo un aiuto per la definizione di routes in un mio
piccolo progetto che mi servirà per familiarizzare un po' meglio con
rails.

Sto creando un'applicazione che permetta di gestire i punteggi di un
gioco a team che sto facendo con alcuni amici, una cosa molto semplice
in realtà. Attualmente ho 4 modelli:

Match: has_many :scores
Team: has_many :players
Player: has_many :scores ; belongs_to :team
Score: belongs_to :player ; belongs_to :match

E ho le seguenti routes impostate

resources :teams, shallow: true do
  resources :players do
    resources :scores, only: [:index]
  end
end

resources :matches

Questo mi permette per ora di definire team, giocatori e vedere i
punteggi abbinati ad ogni singolo giocatore, e di gestire una lista di
partite (matches).

La parte che mi da qualche grattacapo é la seguente: scegliendo una
partita dall lista all'url /matches, i capisquadra (players con un
particolare attributo) dovranno visualizzare una pagina con la lista di
giocatori per la loro squadra con i risultati per ogni giocatore. Da
questa pagina potranno poi in seguito modificare (nel caso sia già stato
inserito) il punteggio per uno o più giocatori, o (nel caso non ve ne
sia ancora uno) inserirlo.

Ho pensato a delle routes tipo:

resources :matches do
  resources :players do
    resources :scores
  end
end

ma so che é considerata una pratica scorretta fare nesting di risorse
oltre il primo livello (senza shallow), ed inoltre ho già delle routes
per i giocatori e gli score poco più sopra, nestati ai team.

Voi come gestireste una situazione del genere?
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.