Foros del Web » Programando para Internet » Ruby »

Mostrar/ocultar Formularios

Estas en el tema de Mostrar/ocultar Formularios en el foro de Ruby en Foros del Web. Antes de nada, un saludo a todos. Estoy haciendo mis primeros pinitos con Ruby on Rails y tengo una pequeña duda acerca de qué camino ...
  #1 (permalink)  
Antiguo 31/12/2007, 12:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
Sonrisa Mostrar/ocultar Formularios

Antes de nada, un saludo a todos.

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:
<% if session[:user] %>
      <%= link_to('Logout', :action => :logout) %>
<% else %>
      <%= render(:partial => "loginform") %>
<% end %>
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

layout
Código:
<%= logged_info %>
user_helper
Código:
def loggin_info()
  if session[:user]
	render(:partial => 'loggedform')
  else
	render(:partial => 'loginform')
  end
end
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.

Muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:20.