属性处于活动状态时无法删除对象 - Rspec RoR

时间:2015-04-29 09:25:08

标签: ruby-on-rails ruby rspec

我试图测试对象是否处于活动状态且处于活动状态,然后无法删除。所以我在plan_spec.rb中有这个:

  it "can not be deleted if active" do
    plan = Plan.new(active: true)
    r = plan.destroy
    r.should_not be_valid
  end

我想要检查的属性的名称是“活跃的”'并且它是布尔值,因此如果active为true,则无法删除对象计划。 有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

Plan课程中添加:

before_destroy :ensure_inactive

#will abort destroy if return false
def ensure_inactive
  !active?
end

顺便说一下,你的规格是错误的,它并不是真正的验证。你应该:

  • 保存对象
  • call destroy
  • 确保它没有被销毁