如何验证是否包含下划线

时间:2019-06-18 15:27:58

标签: ruby-on-rails validation activerecord

我想验证“名称”列中是否包含“ _”(下划线)。 例如test_person没问题,但testperson没问题。

我已经尝试过的方法: 1.

validates :name, inclusion: { in: %w(_), message: "Invalid name %{value}. Name must be firstname_familyname" }

然后,我不能保存任何名称,不管是否带有下划线,例如test_person和testperson被拒绝并显示错误消息“ Invalid name ....”。

2。

validates :name, format: { With: /\A[a-zA-Z]+_+[a-zA-Z]+\z/ }

然后显示ArgumentError。

有人可以让我知道如何验证下划线吗?

1 个答案:

答案 0 :(得分:1)

此解决方案有效-https://guides.rubyonrails.org/active_record_validations.html#format

validates :name, format: { with: /\A[a-zA-Z]+_+[a-zA-Z]+\z/, message: "name must include underscore" }

您的代码唯一的问题是-您有​​With:和大写字母W

在第with:行上进行更改