首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ruby验证并从付费字段中删除逗号

Ruby验证并从付费字段中删除逗号
EN

Stack Overflow用户
提问于 2019-06-29 07:36:28
回答 2查看 182关注 0票数 1

我有一个表单,它接受一个“付费”字段,我正在尝试验证它。

这是一个数字字段,但我希望用户能够通过检查验证输入付费金额,而不产生逗号引发错误。

amol.rb

代码语言:javascript
代码运行次数:0
运行
复制
class Amol < ApplicationRecord

 validate :check_paid

 def check_paid 
   errors.add(:paid, '- Commas are not allowed') if paid.to_s.gsub(/,/,"").to_i
 end 

end

当我输入的金额为12,535,然后它会引发错误显示如下;

代码语言:javascript
代码运行次数:0
运行
复制
1 error prohibited this article from being saved: Paid - Commas are not allowed

这也没什么。

但问题是,即使我从输入中删除逗号,错误仍然存在,并且无法创建或更新表单。

任何建议都欢迎。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-02 06:43:45

最后,通过下面的验证,得到了预期的结果;

验证:付费,数字:{ only_integer: true },allow_nil: true

现在,当我在文本字段中输入逗号时,就会看到显示错误;

代码语言:javascript
代码运行次数:0
运行
复制
Paid is not a number

另一方面,如果输入没有逗号的数字,并按预期方式保存到数据库中。

票数 0
EN

Stack Overflow用户

发布于 2019-06-29 08:12:06

以上代码的问题是:

代码语言:javascript
代码运行次数:0
运行
复制
if paid.to_s.gsub(/,/,"").to_i

这个表达式总是返回。检查是否存在的其他简单方法

代码语言:javascript
代码运行次数:0
运行
复制
errors.add(:paid, '- Commas are not allowed') if paid.to_s.include?(',')

但是要记住,这并不意味着您的付费输入是一个有效的数字。您可能需要添加其他验证,如空的数字号

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56815882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档