0

我正在创建一个包含章节和测验的课程应用程序。管理员可以通过添加问题和答案来创建测验。我想应用一个业务规则,以便一个问题只能有一个is_correct属性设置为“真”的答案

因此,我在我的 Answer 模型中添加了一个验证回调:

validates_uniqueness_of :is_correct, conditions: -> { where(is_correct: true) }

这行得通,但我也想用 Rspec 和 Shoulda 匹配器对其进行测试。

我在以下位置查找了有关应该匹配器的信息: http ://rubydoc.info/github/thoughtbot/should-matchers/master/frames

但是没有说明如何定义一个应该匹配器

validates_uniqueness_of(:is_correct) with the attribute value set to true

有没有办法用一个应该匹配器来定义它?

4

1 回答 1

1

就在这里。应该匹配器实际上非常广泛,但需要一段时间才能找到一些额外的东西。看看这个网站:http ://travisonrails.com/2013/02/20/should-matcher-model-extras

describe Answer do
  context 'validations' do
    it { should validate_uniqueness_of(:is_correct) }
  end
end
于 2013-11-07T15:10:18.090 回答