2013-11-24 18 views
11

Sto costruendo alcune applicazioni di esempio di binari in cui sto avendo due modelli Utente e Progetti. L'associazione tra entrambi gli utenti ha molti progetti. Ora la domanda è che sono disposto a fornire un po 'di drop down per i progetti dell'utente in cima e se qualcuno fa clic su quello, lo farà per proiettare la pagina dello show. Ma se l'utente è nella pagina di modifica di un progetto e seleziona un altro progetto dal menu a discesa, desidero che raggiunga la pagina di modifica del nuovo progetto selezionato stesso caso per la pagina di presentazione qualsiasi idea. La soluzione che sto cercando è per esempio: - possiamo trovare il controller corrente usando i parametri [: controller], trovare l'azione corrente usando params [: action] come posso trovare il percorso corrente. Grazie in anticipoCome ottenere il percorso corrente nei binari

Se qualcuno vuole vedere che cosa è il mio codice: - Ecco il link per GitHub: - 'https://github.com/peeyushsingla/session_test.git/ Qui sto usando semplice link, ma in realtà fornirò qualche singolo discesa che verrà visualizzato che lavorerà per tutta la modifica, spettacolo, nuovo ogni azione

risposta

23

per recuperare gli URL:

# Current URL: 
request.original_url 

# Current relative URL: 
request.request_uri 

Inoltre, è possibile controllare con il metodo current_page se ci si trova in un determinato percorso.

current_page?(my_path) 
# => true/false 

Per Rails 4 uso:

# Current URL: 
request.original_url 

# Current relative URL: 
request.fullpath 
+3

'request.request_uri' non funziona per me (Rails 4) Devo utente' request.path' invece – jmarceli

+0

grazie, ho aggiornato la risposta –

+0

definito metodo CURRENT_PAGE? –

20

Per Rails 4

esempio URL: http://localhost:3000/allreferred?&referred_name=maria

request.path -> "/allreferred"

request.base_url -> "http://localhost:3000"

request.fullpath -> "/allreferred?&referred_name=maria"

request.original_url -> "http://localhost:3000/allreferred?&referred_name=maria"

+1

Voto positivo per esempi reali :) –

2

È possibile utilizzare url_for

def current_path(params={}) 
    url_for(request.params.merge(params)) 
end 

esempio URL http://localhost:3000/posts

current_path -> /posts

current_path(order: asc) -> /posts/?order=asc