如何从Rails验证中的属性中删除问号?

时间:2015-02-11 22:44:48

标签: ruby-on-rails regex validation

validates :tag, format: { with: /[^?]+/, message:'cannot have question marks') }

我希望此值的验证失败:

tag = "why not?"

并通过这个:

tag = "why not"

我不明白如何简单地选择'?'在带有正则表达式的字符串中。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以像这样编写验证:

validates :tag, format: { without: /\?/, message: 'cannot have question marks' }

参考:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_format_of

答案 1 :(得分:0)

如果您要删除字符串中的{strong>全部 ?,请执行以下操作:"why not?".gsub("?", '')

修改 我只是重新阅读你的问题,你想要你的验证的正则表达式(呃,我需要咖啡)。

您需要转义?,因为正则表达式中的?表示其中一个的所以只需将您的验证更改为 - > validates :tag, format: { with: /\?/, message:'cannot question marks') }