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