[Ror-es] Espacios despues de campo de formulario hacen saltar una validación de formato

Andrés gutiérrez andresgutgon at gmail.com
Sun Mar 14 12:07:19 GMT 2010


Hola a todos. Me esta pasando una cosa extraña. Primero os muestro el código
y luego lo que me parece extraño.

#invitation.rb
  validates_format_of :recipient_email, :with => Authlogic::Regex.email

#script/console
>> Authlogic::Regex.email
=> /^[A-Z0-9_\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2,4}|museum|travel)$/i

#invitations_controler.rb
  def create
    @invitation = Invitation.new(params[:invitation])
    if @invitation.save
      flash[:notice] = "Thank you, we will notify when we are ready."
      redirect_to root_url
    else
      render :action => 'new'
    end
  end

Vale. Lo extraño es que esa validación me peta si en el formulario por lo
que sea me dejo un espacio al final del email. Me dice que ese email no es
válido.

Yo lo he solucionado asi:
  def create
    @email_strip = params[:invitation][:recipient_email].strip
    params[:invitation][:recipient_email] = @email_strip
    @invitation = Invitation.new(params[:invitation])

Osea le quito los espacios al campo email y me funciona.

Pero me queda la duda de si es normal que tenga que hacer esta historia para
limpiar de espacios un campo antes de que pase por las validaciones.
¿Hay alguna convención de rails que me estoy saltando? ¿Es culpa de la R.e.
que uso (en esto ando bastante pez)?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20100314/f8550693/attachment.htm 


More information about the Ror-es mailing list