我正在为我的用户模型编写一些规范,但测试没有通过。我正在从gem的github页面中找到this但没有成功。这是我的代码:
validates :phone, numericality: { only_integer: true }, allow_blank: true, length: { is: 7 }
validates :mobile, numericality: { only_integer: true }, allow_blank: true, length: { is: 10 }
和我的规格
it { should ensure_length_of(:phone).is_equal_to(7) }
it { should ensure_length_of(:mobile).is_equal_to(10) }
此验证应仅在更新过程中运行。
错误:
当telefono设置为“xxxxxxx”时,没有预料到错误包括“rapiderrónea(debe ser de 7 caracteres)”,得到错误:verticalerrónea(debe ser) de 7 caracteres)
当celular设置为“xxxxxxxxxx”时,没想到错误包括“纵向错误(debe ser de 10 caracteres)”,得到错误:纵向错误(debe s) er de 10 caracteres)
仅供参考:我设置了西班牙语语言环境;我认为这是原因
希望有人可以帮助我。谢谢你提前
答案 0 :(得分:0)
我认为您收到了错误,因为shoulda_matcher不希望length: { is: 7 }
与numericality
一起使用。
PS对我而言 - 对于电话号码使用数字很奇怪,您可以使用字符串并使用validates
和format
来确保有效性数据。例如电子邮件验证here