ruby-on-rails - rspec - 如何检查 allow_blank 是否存在

标签 ruby-on-rails ruby validation activerecord rspec

我有一个有效的唯一性测试:

it { should validate_uniqueness_of(:name).case_insensitive }

然而,当我尝试对名称进行类似的测试时,它失败了

it { should validate_presence_of(:name).allow_blank }    

我得到这个错误:undefined methodallow_blank'`

最佳答案

根据 this list ,shoulda 中没有可以链接到 validate_presence_of 的方法来支持你想做的事情。 看看the source code of the matcher here .

但是,您可以使用另一个匹配器:

it { should allow_value("", nil).for(:name) }

哪个测试是否可以将空白值应用于您的属性。

完整的测试将是

it { should validate_presence_of(:name) }    
it { should allow_value("", nil).for(:name) }

关于ruby-on-rails - rspec - 如何检查 allow_blank 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413906/

相关文章:

ruby-on-rails - sqlite3 数据库中的日期在 Rails 中返回为 nil

mysql - Ruby on Rails mysql2 gem 故障排除

ruby-on-rails - Rails 错误 - 未初始化的常量

mysql - Searchkick 使用 DateTime 查询的语法是什么

sql - 使用 select 从不同的表中获取列值

django - ModelChoiceField 上的验证错误

javascript - 如何禁用 Google map 信息窗口上的下拉菜单(?)

ruby-on-rails - 如何用与数据库中的名称不同的名称来命名枚举?

c# - DataGridView 行在提交更改后仍然是脏的

javascript - 如何使用 jquery 验证器在提交表单之前验证是否选择上传文件