【发布时间】:2016-08-16 23:27:51
【问题描述】:
我有一个模特 eclub,有很多邀请,我想限制可以添加的邀请数量。我的模型是这样的
class Eclub < ActiveRecord::Base
has_many :invites, dependent: :destroy
validates :invites, length: {maximum: 50, message: 'The maximum number of invites have been sent' }
根据这个SO answer 应该可以工作,前提是我不关心标记为销毁的邀请。我的 rspec 测试首先创建了一个 eclub 并成功添加了 50 个邀请。那么
invite = Invite.new(name: 'Too Many', email: 'extra@gmail.com')
eclub.invites << invite
expect(eclub).to be_invalid
expect(eclub.errors[:invites].first).to include 'maximum number'
expect(eclub.reload.invites.size).to eq 50
前两个期望通过,但最后一个失败了
Failure/Error: expect(eclub.reload.invites.size).to eq 50
expected: 50
got: 51
如何防止额外的邀请被添加到集合中?
【问题讨论】:
-
我已经澄清了。
标签: ruby-on-rails rspec