【发布时间】:2015-09-04 17:03:42
【问题描述】:
我正在尝试在我的 Campaign 模型上测试验证。我有一个允许用户Create a Campaign 的表单,这应该要求他们在保存之前选择program。
我尝试在 SO 上遵循一些答案,但无法让它们发挥作用。这是我到目前为止所拥有的......
关系..
class Campaign < ActiveRecord::Base
belongs_to :program
validates_associated :program,
message: "You need to choose a Program."
end
class Program < ActiveRecord::Base
has_many :campaigns
end
..和规范。
it 'validates associated campaign' do
campaign = build(:campaign)
expect(campaign.save).to be false
expect(campaign.errors).to eq "You need to choose a Program."
end
失败..
Failures:
1) Campaign validates associated campaign
Failure/Error: expect(campaign.save).to be false
expected false
got true
# ./spec/models/campaign_spec.rb:34:in `block (2 levels) in <top (required)>'
【问题讨论】:
-
你没有注释掉
validates_associated吗? -
我在尝试时打开和关闭它。没有意识到它仍然在我的粘贴中被注释掉。我会解决的。
标签: ruby-on-rails ruby rspec tdd bdd