He añadido unos validates a mi model. La cosa es que me salga el listado
de errores en la vista cuando no se grabe, pero dependiendo de si uso en
mi controaldor redirect_to :action no me funciona, sólo me funciona con
:render_action
Mi model:
validates_presence_of :titulo,:texto,:message=>‘campo requerido’
validates_uniqueness_of :titulo, :message=>‘ya existe una foto con ese
nombre’
Mi helper:
def pintar_errores(objeto)
count=objeto.errors.count
unless count.zero?
how=plural_errores(count)
html={}
html[“class”]=“errores”
header_message="Hay #{count} #{how}: "
error_messages=objeto.errors.full_messages.map {|msg|
content_tag(:li,msg)}
content_tag(:div, content_tag(:h2,header_message)<<
content_tag(:ul,error_messages),html)
else
‘’
end
end
Mi controlador:
def create_foto
@foto=Foto.new(params[:foto])
if @foto.save
flash[:notice]=‘La foto “‘[email protected]+’” ha sido creada’
logger.info ‘La foto “‘[email protected]+’” ha sido creada’
redirect_to :action =>‘edit_proyecto’, :id=>@foto.proyecto_id
else
logger.info ‘La foto “‘[email protected]+’” ha sido creada’
redirect_to :action=>‘new_foto’, :id=>@foto.proyecto_id
end
end
Mi vista:
<%=pintar_errores(@foto)%>
…
Si doy de alta una foto, en el caso de que coja los validates en el
controlador no se graba, se mete en el else y me redirige al action
‘new_foto’ , pero en la vista no me muestra los errores del validates.
Sólo me pasa cuando uso redirect_to :action, cuando tengo
:render_action me funciona perfectamente y si me los muestra.
Qué puedo hacer para que se muestren usando el redirect_to :action?
Gracias