Ruby on rails 是否有一个Shoulda matcher来验证(:属性)的唯一性和条件
我正在创建一个包含章节和测验的课程应用程序。管理员可以通过添加问题和答案来创建测验。我想应用一个业务规则,这样一个问题只能有一个答案,Ruby on rails 是否有一个Shoulda matcher来验证(:属性)的唯一性和条件,ruby-on-rails,rspec,shoulda,Ruby On Rails,Rspec,Shoulda,我正在创建一个包含章节和测验的课程应用程序。管理员可以通过添加问题和答案来创建测验。我想应用一个业务规则,这样一个问题只能有一个答案,is\u correct属性设置为“true” 因此,我在我的答案模型中添加了一个验证回调: validates_uniqueness_of :is_correct, conditions: -> { where(is_correct: true) } 这是可行的,但我也想用Rspec和Shoulda匹配器来测试它 我在以下位置查找了Shoulda mat
is\u correct
属性设置为“true”
因此,我在我的答案模型中添加了一个验证回调:
validates_uniqueness_of :is_correct, conditions: -> { where(is_correct: true) }
这是可行的,但我也想用Rspec和Shoulda匹配器来测试它
我在以下位置查找了Shoulda matchers的信息:
但目前还没有关于如何定义Shoulda匹配器的说明
validates_uniqueness_of(:is_correct) with the attribute value set to true
有没有办法用Shoulda matcher来定义这一点?是的,有。Shoulda matchers实际上非常广泛,但花了一点时间才找到一些额外的。查看此网站:
describe Answer do
context 'validations' do
it { should validate_uniqueness_of(:is_correct) }
end
end