Skip to content

Instantly share code, notes, and snippets.

@osiro
Created March 6, 2012 07:18

Revisions

  1. osiro created this gist Mar 6, 2012.
    13 changes: 13 additions & 0 deletions driver.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    class Driver

    ....

    after_destroy :set_new_current_driver_to_insurance_detail

    protected
    def set_new_current_driver_to_insurance_detail
    @insurance_detail = self.insurance_detail
    @insurance_detail.update_attribute(:current_driver, @insurance_detail.drivers.first) if @insurance_detail.drivers.any? and @insurance_detail.current_driver_id == self.id
    end

    end
    15 changes: 15 additions & 0 deletions driver_spec.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    describe "#set_new_current_driver_to_insurance_detail" do
    let(:driver) { Factory :driver }
    let(:insurance_detail) { Factory :insurance_detail }

    context "when insurance detail has no more drivers" do
    before(:each) do
    driver.update_attribute(:insurance_detail, insurance_detail)
    insurance_detail.update_attribute(:current_driver, driver)
    end
    it "should not change current_driver_id" do
    driver.destroy
    expect { insurance_detail }.should_not change { self.current_driver_id }
    end
    end
    end