我正在使用正则表达式验证我的sinatra应用程序中的表单字段,该表单字段是使用data_mapper gem发送到我的数据库的。我在模型中用于字段的代码是:
property :price, Float, :required => true, :format => /\$?\d{0,3}\.{1}\d{2}/
它正从params中拯救出来:
b.price = params[:price]
但是当我尝试保存时,我的格式错误仍然无效。我用rubular检查了我的正则表达式,似乎工作正常。任何人都知道出了什么问题?
答案 0 :(得分:0)
它并不完美,但这就是我目前正在做的解决方案:
property :price, Float, :required => true
validates_format_of :price, :with => /\$?\d{0,3}(\.{1}\d{2})?/
然后:
c = params[:price]
c[0] == "$" ? b.price = c[1,7] : b.price = c
所以,如果有" $"我只是在没有它的情况下将数字保存到b.price,否则整个事情都会设置为b.price。我觉得应该有更好的方式...