2011-12-07 4 views
5

rendersi conto che questa domanda è simile a questa.Come passare i parametri URL alla radice [in routes.rb] in Ruby on Rails

Pass URL parameters to a redirect_to :root

Tuttavia, mi chiedo di avviare l'applicazione con parametri passati in via preliminare. Forse root: nel file routes.rb non è esattamente il modo corretto per andare?

In pratica speravo che sarebbe iniziato così.

http://localhost:3000/controller?hello_id=1&finder_id=1&laser_id=1&sharks_id=4

Ogni pensiero sarebbe molto apprezzato!

+0

Stai sognando di passare questi parametri 'rotaie server' o semplicemente bisogno di radice percorso a quel controller e azione con tali parametri? E perché hai bisogno di questo? – jibiel

+0

Sto sognando di passare i parametri al server dei binari :) –

+0

Un esempio del perché si vorrebbe farlo per "ma perché ????" folla: dire che stai usando kaminari. Supponiamo che la root route sia un elenco aggiornato di frequente, quindi per impostazione predefinita si desidera andare all'ultima pagina. Non è possibile accedere all'ultima pagina per impostazione predefinita nel controller, poiché kaminari non inserisce "page = 1" nei collegamenti alla prima pagina. Quindi, vuoi una radice per: "my_list # index? Page = last". –

risposta

-1

Sembra impossibile farlo in binari.

Un modo per aggirare questo è quello di puntare ad un'azione di controllo che reindirizza ad un'altra azione con tutti i parametri impostati (soluzione più brutta, la soluzione più brutto a mio parere)

o

si può puntare a un controller che imposterà i valori predefiniti ai parametri se non sono stati passati parametri.

17

Forse è cambiato negli ultimi due anni, ma questo è sicuramente possibile ora:

root to: 'controller#action', hello_id: 1, finder_id: 1, laser_id: 1, sharks_id: 4