Estoy haciendo mis primeros pinitos con Ruby on Rails y tengo una pequeña duda acerca de qué camino seguir para cumplir la política DRY del lenguaje.
La problemática viene por el clásico formulario de login y su visión en la página principal. Muchas Webs, por no decir todas, tienen una sección de sus páginas dedicadas a mostrar la información del usuario en el caso de estar logeado o el formulario de login en caso contrario. Sin ir más lejos, en esta misma Web se puede observar el recuadro.
Para realizar esto en Ruby on Rails se me ocurren a priori, dos formas: utilizar un "if" en presentación, o utilizar un helper.
El escenario en ambos casos es que si el usuario está logado, existe una variable de sesion con información sobre él.
Partiendo de eso, la primera opción se limita a comprobar si existe dicha variable. En caso afirmativo, se mostraría un mensaje de bienvenida y en caso negativo, un formulario de login. Podría ser algo así, dentro del layout
Código:
Por otro lado, manejaba la opción de utilizar un simple helper que realizase el "trabajo sucio" evitando tener lógica alguna en la vista<% if session[:user] %> <%= link_to('Logout', :action => :logout) %> <% else %> <%= render(:partial => "loginform") %> <% end %>
layout
Código:
user_helper<%= logged_info %>
Código:
A priori la segunda opción puede parecer la más "limpia" y la más "DRY" pero mi cuestión es si existe alguna otra forma de realizar estas tareas en Rails.def loggin_info() if session[:user] render(:partial => 'loggedform') else render(:partial => 'loginform') end end
Muchas gracias.