I know that usually when people say 'i think i found a bug in
rails/ruby' they've done something dumb.  I'm wondering if this is the
case here, but this does seem like a genuine rails bug to me.

In my user model i have a few different before_create callbacks.  In one
of them, if it happens to return false (just because the last statement
in it evaluated to false), then the saving gets blocked - i can see the
db transaction rolling back.  However, this doesn't affect the results
of calling .valid? on the object, so i get this situation:

new_user.valid?
 => true
new_user.save
 => false
new_user.errors.full_messages
 => []

This has caused me a considerable amount of beard-tugging to track this
down.

Now, i was under the impression that before_create doesn't care what's
returned by the method it calls, and for my other before_save callbacks
it doesn't seem to make any difference - just this one.  It's definitely
the return value because if i put 'true' as the last line of the
callback method then everything is fine.  I change it to 'false' and
everything's not-fine again.

I'm in rails 2.2.2.

Can anyone shed any light on this?

thanks
max
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to