Hola a todos, pedirles su ayuda. Estoy validando ciertos campos en un
modelo
que tengo, indicando a los métodos de validación los mensajes que
deberÃa
desplegar. ¿Como hago para mostrar dichos mensajes? como aparecen cuando
se
utiliza “scaffold”
Tengo lo siguiente:
class Libro < ActiveRecord::Base
validates_presence_of :titulo, :message => “Debe llenar el titulo
del
libro”
validates_uniqueness_of :titulo, :message => “Titulo de libro ya
esta
registrado”
end
<%= error_messages_for 'libro' %>
<%= start_form_tag :action => "guardar", :method => "post" %>
<table border="1">
<tr>
<td>Titulo del libro</td>
<td><%= text_field :libro, :titulo %></td>
</tr>
<tr>
<td><%= submit_tag("REGISTRAR") %></td>
</tr>
</table>
<%= end_form_tag %>
Gracias de antemano.
al parecer como esta aqui yo me imagino que la forma de alta del libro
esta
en otra action diferente a guardar
supongamos que esta en alta y le das submit, de ahi va al controlador y
pasa
a guardar, ahi es donde tienes que intentar guardarlo y cachar el error
en
caso de que algo venga mal entonces como estas en guardar, debes
regresar a
alta por tanto podrias hacer un render_action :guardar
y te apareceran los errores, otra forma es que estando en alta en vez de
mandarlo a la action guardar, te vas a alta y en el controlador
preguntas
fue la peticion por el metodo post? si esto se da entonces viene del
formulario y ahi validas si algo sale mal no registras y terminas
cargando
la vista alta con el listado de errores, si no hay errores haces un
redirect_to a view con el id del nuevo libro creado o algo similar
quizas te sirva mirar el codigo que genera automaticamente cuando haces
un
scaffold, si quieres meterte mas a estos errores tengo entendido que si
tienes en tu modelo libro supongamos
<% libro.errors.each do |error| %>
<%= error #revisar y tratar el error si es necesario %>
<% end %>
bueno no se si esto te sirva de algo, como quiera recuerda que lo que
hace
ror es validar esos validates_presence, validates_uniqueness, etc y si
hay
error agregarselo al arreglo errors en el objeto.
si tienes mas dudas pon un poco mas de info para ayudarte mejor.
si me equivoco en algo xD, me lo dices asi ya no sigo en el mismo error
jojojojo
sale suerte =P
Ing. Omar Sebastian Jimenez Becerra
2007/12/11, Marcelo Ferrufino M. [email protected]:
2007/12/11, Omar J. [email protected]:
quizas te sirva mirar el codigo que genera automaticamente cuando haces un
scaffold, si quieres meterte mas a estos errores tengo entendido que si
tienes en tu modelo libro supongamos
Hola omar gracias por la respuesta, eso fue lo que hice revisar el
código
scaffold y lo único que pude encontrar fue la lÃnea que tiene en el
partial
del _form
<%= error_messages_for ‘libro’ %>
Ahora lo que tengo en mi controlador es lo siguiente:
def guardar
if Libro.new(params[:libro]).save
redirect_to :action =>‘index’
else
redirect_to :action => ‘agregar’
end
end
La primera idea que se me vino fue de la forma que tu me indicas hacer
el
manejo de errores en el controlador, pero de ahà fue que intenté
manejarlo
como lo hace scaffold y pues llegué a lo que les expuse.