2010-03-03 31 views
5

Siempre hay cierto grado de magia negra cuando se trata de Rails y no puedo encontrar la documentación que me ayude a descubrir esto. Lo que redirect_to hace es claramente directo. De hecho, esta pregunta ni siquiera está directamente relacionada con, pero un argumento que veo pasó a redirigir a menudo y no puede entender de dónde viene ese argumento. Por ejemplo, si andamio de un nuevo objeto, digamos 'usuario', verá algo de código como este en 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 

La pregunta es, ¿qué es exactamente users_url aquí? ¿De dónde viene? ¿Puede alguien señalarme en la dirección correcta en lo que respecta a la documentación?

Respuesta

1

En este caso, el users_url es la ruta completa de la URL para los usuarios de la vista. Esto es autogenerado por Rails action_dispatch basado en su objeto de dominio. Si está interesado en la documentación sobre esto, puede leerlo from here.

HTH

3

Hay muchas rutas con nombre que Rails genera automáticamente si usa rutas basadas en recursos. Puede verlos ejecutando rake routes. Otros ejemplos serían edit_user, user y new_user. Al agregar _url a ese nombre, el nombre se resolverá en la url coincidente. Y la URL es lo que redirect_to necesita.

+1

algún material de lectura útil sobre esto se puede encontrar en RailsGuides: http://guides.rubyonrails.org/routing.html –

+0

Esta última afirmación no es cierta. 'redirect_to' tomará felizmente un camino. Use el formulario '* _url' si necesita la URL completa en lugar de una ruta relativa. –