Como usar link_to en Rails 5

Si alguna vez necesitas crear links o menús dentro de las vistas en un proyecto creado con Rails esta guía te podrá ayudar.

Normalmente en html si queremos crear un link debemos crear una etiqueta como esta

<a href="/profiles/show/1">Profile</a>  

pues bien en Rails tenemos una forma de generar este mismo código y es el siguiente.

link_to "Profiles", controller: "profiles"  

o mas verbose

link_to "Profile", controller: "profiles", action: "show", id: @profile  

Otra forma mas simple de crear links es usar el helper que nos provee Rails
y que podemos encontrar dentro de las rutas de nuestra aplicación.

Lo primero que debemos hacer es listar las rutas

$ rails routes

podemos ver algo como esto

Prefix Verb                 URI Pattern                             Controller#Action  
new_user_session GET        /users/sign_in(.:format)                devise/sessions#new  
user_session POST           /users/sign_in(.:format)                devise/sessions#create  
destroy_user_session DELETE /users/sign_out(.:format)               devise/sessions#destroy  
new_user_password GET       /users/password/new(.:format)           devise/passwords#new  
edit_user_password GET      /users/password/edit(.:format)          devise/passwords#edit  
user_password PATCH         /users/password(.:format)               devise/passwords#update  

Si te fijas bien en la primera columna Prefix Verb encontraras el nombre que usaremos para definir el link simplemente usando este prefijo y agregando al final _path que nos provee el Helper de Rails.

Por ejemplo si queremos crear un link para cerrar la sesión siguiendo las rutas anteriormente listadas /users/sign_out(.:format) usamos el Prefix Verb destroy_user_session + _path

<%= link_to 'Logout', destroy_user_session_path, method: :delete %>  

para este ejemplo estoy usando las rutas generadas por Devise por eso agrego el atributo method: :delete ya que es requerido para cerrar la sesión usando esta gema

Jose Aponte

Desarrollador full-stack apasionado por las tecnologías de información y los lenguajes de programación. Me gustan divertirme con mi familia, mi lema es "Nunca paras de Aprender"

Bogota

Subscribe to Jappsku Engineering Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!