Domanda

Sto cercando di inviare una variabile attraverso un link_to, senza l'utilizzo di query URL in Ruby on Rails, da vista indice un controllore per essere utilizzato su indice di un altro controllore.

In sostanza, ho bisogno di passare il Turma.id (scuola di classe id), alla Elementos_turma (popoli della classe) di controllo, in modo da posso usarlo e filtrare l'indice: ElementosTurma.find (: all,: condizioni = > {: turma_id => xxxxx}), per mostrare i popoli della classe selezionata.

E 'possibile? Forse senza l'utilizzo di una variabile di sessione? Forse l'invio la variabile a un metodo al 1 ° regolatore, per inviarlo all'altro controller? (Se sì, come? Saggio non molto RoR ... :))

È stato utile?

Soluzione

Non c'è bisogno di un metodo speciale per ottenere le informazioni necessarie, la magia di percorsi farà.

Nel file routes.db, si dovrebbe essere in grado di definire qualcosa di simile,

map.resources :class, :has_many => :students

Poi, se si esegue 'percorsi rake' si dovrebbe vedere un percorsi simili a questo

class_students GET /classes/:class_id/students(.:format)  {:controller=>"students", :action=>"index"}

È possibile chiamare quel percorso nella vista in questo modo

class_students_path(class_id)

Poi, nel vostro controller si avrà accesso a params [: class_id]

Il nome del percorso, non è molto bella, ma questo dovrebbe funzionare.

Modifica --------------------------------------

Secondo il commento, non è possibile utilizzare map.resources per qualche motivo o un altro ...

 map.class_students '/:class_id/students', :controller => 'students', :action => 'index'

Ciò produrrà lo stesso percorso disponibile nella vostra vista, lo stesso param nel controllore.

Detto questo, io non so come un bug server potrebbe proibire l'utilizzo map.resources

Altri suggerimenti

Non è possibile trasferire i dati attraverso un collegamento senza includere i dati in collegamento.

Tuttavia, suona come hai solo bisogno di utilizzare le risorse nidificate. (Dal momento che parlo inglese, ho intenzione di non affrontare un'altra lingua e fare ciò che viene a me.) Gli URL che si desidera essere l'invio di persone a probabilmente dovrebbe guardare più come questo se si vuole essere RESTful:

/classes/1/people/

Questo è il "modo delle rotaie" per indicare che si desidera ottenere la gente in classe # 1, e Rails offre built-in metodi di instradamento per rendere questo facile. Vedere la Rails Routing dall'esterno articolo nella Guida Rails.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top