我需要为接受的数字添加自定义验证选项,和。作为分隔符并提供本地化的错误消息,而字段本身是一个字符串。
答案 0 :(得分:0)
我在模型中创建了一个自定义验证,这意味着我可以访问字段名称(在这种情况下是平均值和grade_scale)
validate :average_valid_number
def average_valid_number
avg = average.gsub("," , ".")
case avg
when /\A0[xX]/
errors.add(:average, :not_a_number)
else
begin
Kernel.Float(avg)
rescue
errors.add(:average, :not_a_number)
end
if grade_scale == "CH"
errors.add(:average, :greater_than_or_equal_to, options = {:count => 4}) if avg.to_f < 4
errors.add(:average, :less_than_or_equal_to, options = {:count => 6}) if avg.to_f > 6
end
end
end