Hola a todos!
Tengo un problemita bastante raro y que ya me tiene verde, les cuento:
Tengo un campo en una tabla de accionistas cuyo porcentaje de acciones
tiene
que ser mayor a cero (0) y menor o igual a cien (100). en el modelo
tengo lo
siguiente:
class Accionista < ActiveRecord::Base
has_many :empresas
validates_numericality_of :porcacc, :message => ‘^ El campo “Porcentaje
de
Acciones” debe ser mayor a cero (0) y menor o igual a cien (100)’,
:only_integer => false, :if => Proc.new {|accionista|
accionista.porcacc.to_f > 0 && accionista.porcacc.to_f <= 100.0}
end
Al parecer deberia de funcionar pero les cuento que no… en la vista
colo
300 o 120 y me deja grabar sin problemas…
no entiendo alguien me puede explicar?
Segun tu codigo, la validacion solo ocurre cuando se cumple la
condicion del IF, es decir que solo se valida cuando el valor esta
entre 0 y 100, por eso te deja meter 300, o 120, simplemente cuando
pones estos valores ignora la validacion. Creo que has confundido la
funcion del IF, aqui no deberias ponerla ya que quieres validar
siempre que este entre 0 i 100, puedes hacer…
validates_numericality_of :porcacc, :message => ‘^ El campo “Porcentaje
de
Acciones” debe ser mayor a cero (0) y menor o igual a cien (100)’,
:only_integer => false, :greater_than => 0, :less_than_or_equal_to =>
100
El dÃa 24 de mayo de 2009 23:21, Manuel P.
[email protected] escribió:
validates_numericality_of :porcacc, :message => '^ El campo "Porcentaje de
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
–