使用字符串值为整数集创建一个轨道记录nil静默

时间:2015-04-29 10:30:03

标签: ruby-on-rails rails-activerecord

在我的rails(4.2.1)应用中,我有一个带有整数字段Post的{​​{1}}模型。创建帖子时,我将一个字符串传递给整数字段。我预计会出现错误,但记录是在foo设置为foo的情况下创建的。为什么我没有收到错误?

nil

实际上,我想为Post编写一个失败的测试,然后我会将foo改为enum以使测试通过。我很惊讶测试没有引起错误。

1 个答案:

答案 0 :(得分:6)

它是一个"功能"数据库。此时Rails不知道属性的类型。如果您希望它只接受整数,则可以使用validates_numericality_of :foo

如果您希望测试失败而不是枚举,则可以执行以下操作

expect { subject.foo = 'invalid value' }.to raise_exception(ArgumentError)

只要它不是枚举就会失败。