Setting a boolean to false in a before_create callback

Has anyone ever had trouble doing this? Whenever I try to do so, it doesn't seem to work:

in my model: [code]   before_create :set_defaults

  def set_defaults     self.submitted = false   end [/code]

in my rspec test: [code]   it "Should set 'submitted' to false before a create" do     @assignment = Assignment.new(:submitted => true)     @assignment.save     @assignment.submitted.should be_false   end [/code]

and the result: [code] Assignment Should set 'submitted' to false before a create' FAILED expected false, got true [/code]

Does the object pass validation? before_create callbacks won't run if it doesn't.

I'd recommend changing the middle line to @assignment.save.should be_true or equivalent to check if the record is getting saved at all.

--Matt Jones

Does the object pass validation? before_create callbacks won't run if it doesn't.

I'd recommend changing the middle line to @assignment.save.should be_true or equivalent to check if the record is getting saved at all.

Also, be careful as if a before_create evaluates to false (as your one
does) the create won't actually happen.

Fred