2010-03-03 14 views
5

C'è sempre un certo grado di magia nera quando si parla di Rails e non riesco a trovare la documentazione per aiutarmi a capire questo. Ciò che il redirect_to fa è chiaramente diretto. In realtà, questa domanda non è nemmeno direttamente correlata a, ma un argomento che vedo passato a redirect_to spesso e non può capire da dove provenga questo argomento. Per esempio, se si patibolo un nuovo oggetto, diciamo 'utente', vedrete un codice come questo in user_controller.rb:Ruby on Rails redirect_to arguments

def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 

    respond_to do |format| 
     format.html { redirect_to(users_url) } 
     format.xml { head :ok } 
    end 
    end 

domanda è, che cosa è esattamente users_url qui? Da dove proviene? Qualcuno può indicarmi la giusta direzione per quanto riguarda la documentazione?

risposta

1

Il users_url in questo caso è il percorso URL completo per la vista utenti. Questo è generato automaticamente da Rails action_dispatch in base al tuo oggetto dominio. Se sei interessato alla documentazione su questo, puoi leggerlo from here.

HTH

3

Esistono molti percorsi denominati che Rails genera automaticamente se si utilizzano percorsi basati su risorse. Puoi vederli eseguendo rake routes. Altri esempi potrebbero essere edit_user, user e new_user. Aggiungendo _url a quel nome, il nome verrà risolto nell'URL corrispondente. E l'url è ciò che redirect_to ha bisogno.

+1

Alcuni materiale di lettura utile su questo possono essere trovati a RailsGuides: http://guides.rubyonrails.org/routing.html –

+0

Quest'ultima affermazione non è vera. 'redirect_to' prenderà felicemente una strada. Usa il form '* _url' se hai bisogno dell'URL completo piuttosto che di un percorso relativo. –