我正在创建一个包含章节和测验的课程应用。管理员可以通过添加问题和答案来创建一个quizz。我想应用业务规则,以便在is_correct
属性设置为“true”时问题只能有一个答案
因此我在我的答案模型中添加了验证回调:
validates_uniqueness_of :is_correct, conditions: -> { where(is_correct: true) }
这有效,但我也想用Rspec和Shoulda匹配器测试它。
我在以下位置查找了Shoulda匹配器的信息: http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/frames
但是没有指示如何为
定义Shoulda匹配器validates_uniqueness_of(:is_correct) with the attribute value set to true
有没有办法用Shoulda匹配器来定义它?
答案 0 :(得分:1)
是的,有。应该是匹配的,实际上非常广泛,但需要一点时间才能找到一些额外的东西。查看此网站:http://travisonrails.com/2013/02/20/shoulda-matcher-model-extras
describe Answer do
context 'validations' do
it { should validate_uniqueness_of(:is_correct) }
end
end