# Validations erasing the form

**URL:** <https://www.ruby-forum.com/t/validations-erasing-the-form/60046>\
**Category:** Rails\
**Created:** [May 9, 2006, 7:19pm UTC](https://www.ruby-forum.com/t/validations-erasing-the-form/60046 "2006-05-09T19:19:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/71c47a/32.png) [@Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/u/Jorge_Mario_GSMazo)\
**Post date:** [May 9, 2006, 7:19pm UTC](https://www.ruby-forum.com/t/validations-erasing-the-form/60046/1 "2006-05-09T19:19:22Z")

</div>

Hi there  
I have a for with a couple of text\_fields. I’m doing some validation  
via the model and when the validation “works” I get there was an error  
on blah blah  
the problem is the form is erased and I have to fill up the form again!  
I saw that scaffold keeps the form filled when the validation “works”  
but I dont know exactly what’s making it happen!  
I would like to know how to make this work

Thanks in advance  
Jorge

---

<div class="post-metadata">

**Author:** ![Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/71c47a/32.png) [@Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/u/Jorge_Mario_GSMazo)\
**Post date:** [May 9, 2006, 8:21pm UTC](https://www.ruby-forum.com/t/validations-erasing-the-form/60046/2 "2006-05-09T20:21:05Z")

</div>

You need to have the model assigned to an instance variable that is  
named the same as the model parameter that you pass into the text\_field  
helper. This way the variable is within scope of the view and can be  
used by the text\_field helper.

# Controller

def create  
@cheese = Cheese.new(params[:cheese])  
if @cheese.save  
#do whatever on success  
else  
render 'your\_view  
end  
end

# View

\<%= text\_field ‘cheese’, ‘name’ %\>

Cheers

## Jonathan

> **[AgileEvolved.com is for sale | HugeDomains](https://www.hugedomains.com/domain_profile.cfm?d=agileevolved.com)**
>
> Own this domain today. We make your shopping experience easy. Friendly and quick customer service.

---

<div class="post-metadata">

**Author:** ![Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/71c47a/32.png) [@Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/u/Jorge_Mario_GSMazo)\
**Post date:** [May 9, 2006, 10:51pm UTC](https://www.ruby-forum.com/t/validations-erasing-the-form/60046/3 "2006-05-09T22:51:22Z")

</div>

Hi there an thanks for answer,  
I have it just like that but still does not work here is my data  
I dont know what i’m doing wrong

def ingresarUsuario  
@usuario = Usuario.new  
@cursoslist = Cursos.find(:all)  
@tipo = Tipousuario.sacar  
end

def agregadoUsuario  
@cursoslist = Cursos.find(:all)  
@tipo = Tipousuario.sacar  
@uid = params[:usuarios][:strid]  
@cur = params[:cursostomados]

#-------------------- insertamos el usuario primero -------  
a = Usuario.randompass(8)

```
@k = {
	"strnombres" => params[:usuarios][:strnombres],
	"strapellidos" => params[:usuarios][:strapellidos],
	"strid" => params[:usuarios][:strid],
	"stremail" => params[:usuarios][:stremail],
	"inttipo" => params[:usuarios][:inttipo],
	"strdireccion" => params[:usuarios][:strdireccion],
	"strtelefono" => params[:usuarios][:strtelefono],
	"strlogin" => params[:usuarios][:strlogin],
	"strclave" => a
	}

	@usuario = Usuario.new(@k)
	#si el usuario crea, entonces lo agregamos a cursosxusuarios
	if @usuario.save
        usuario = 

```

Usuario.find\_by\_stremail(params[:usuarios][:stremail])  
RegistroMail.deliver\_bienvenido(usuario)  
if @cur  
@cur.each do |cursos\_id, do\_it|  
if do\_it == ‘1’  
datas = Hash.new  
datas = {“idusuario” =\> @uid,  
“idcurso” =\> cursos\_id  
}  
@cursosxusuario = Cursosxusuario.new(datas)  
if @cursosxusuario.save  
#agreguame un error en caso de que falle

```
 		      else
    	        flash[:notice] = "Error al matricular usuario al curso"
                render :action => 'buscarusuario'
 		      end
		   end
		  end
        end
        flash[:notice] = "Usuario Agregado al Sistema"
        redirect_to :action => 'ingresarUsuario'
	else
		flash[:notice] = "Hubo errores en la forma, Revisela e intente de 

```

nuevo"  
render :action =\> ‘ingresarUsuario’  
end

end  
–and here is the view–  
\<% unless @usuario.errors.empty? %\>

  

No se pudo proseguir:

  

  
\<% @usuario.errors.each\_full do |msg| %\>  
- \<%= errortraductor(msg) %\>
  
  
\<% end %\>  

  

  
\<% end %\>  
\<%= start\_form\_tag :action =\> ‘agregadoUsuario’ %\>  
  
**\<%= flash[:notice] %\>**  
\<%= render :partial =\> ‘update’ %\> \<%= submit\_tag("Agregar Usuario") %\> \<%= end\_form\_tag %\>

---

<div class="post-metadata">

**Author:** ![Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/71c47a/32.png) [@Jorge\_Mario\_GSMazo](https://www.ruby-forum.com/u/Jorge_Mario_GSMazo)\
**Post date:** [May 9, 2006, 11:37pm UTC](https://www.ruby-forum.com/t/validations-erasing-the-form/60046/4 "2006-05-09T23:37:23Z")

</div>

I think I see your problem. Instead of doing  
render :action =\> ‘ingresarUsuario’  
replace this with  
render ‘ingresarUsuario’ in the last part of the function where you deal  
with errors.

Cheers

## Jonathan

http:/www.agileevolved.com
