2010-02-28 22 views
10

È possibile creare un percorso ricorsivo in Rails?Percorsi ricorsivi in ​​Rails

Ho un'applicazione che consente a un amministratore di creare pagine. Il modello di pagina è un insieme nidificato e quindi ogni pagina ha un parent_id, quindi le pagine sono strutturate in alberi. Il modello di pagina usa anche il plugin Friendly ID per fornire lumache per ogni pagina.

Quando un utente naviga nel sito, vorrei che vedessero la struttura di nidificazione negli URL: è meglio per gli scopi del motore di ricerca e per tutti gli utenti che potrebbero voler esplorare il sito tagliando gli URL.

voglio qualcosa sulla falsariga di:

http://example.com/page/page/page/page ... ecc

Ora, ovviamente, posso creare una mappa nidificato con dicono 10 nidi e la speranza che nessun sito superiore a tale limite, ma sono curioso se c'è un altro modo ...

risposta

11

È possibile associare il percorso iniziale (/ pagina) al controller, impostando "globbing" per tutti i parametri finali.

map.connect '/:page/*pages', :controller => 'pages', :action => 'show' 

params [: Pagine] ora conterrà una serie di parametri di pagina corrispondenti (come molti params finali, come specificato nella URL).