[Rails] before_save gotcha

Marcel Molina Jr.
Fri, 10 Feb 2006 21:12:39 -0000

On Fri, Feb 10, 2006 at 01:01:18PM -0800, Pawel Szymczykowski
wrote:
> On 2/10/06, Marcel Molina Jr. <marcel@vernix.org> wrote:
> > On Fri, Feb 10, 2006 at 12:46:18PM -0800, Pawel Szymczykowski wrote:
> > > Is it will known and accepted that before_save triggers should
return
> > > true? I didn''t notice this before but now I see it in
the
> > > documentation.
> >
> > It is not that they should return true, it is that they should *not*
return
> > false.
>
> Yes - sorry, I worded that unclearly. In my head, anything not false is
true. :)
>
> Still, it''s easy to accidentally return false when updating
boolean
> fields like that - it took me a while to track down too. I''m
afraid I
> may start putting a true at the end of all of my trigger callbacks out
> of sheer paranoia!

You should always be able to know if an expression is going to return nil or
false in the case that it is boolean false. Usually it will return nil unless
you explicitly implement something to return false or are using operators
like ! or && that result in true or false. So, no need to be paranoid.
Just
be mindful. Your functional tests will catch you if you slip up and the
development log will indicate if a before_filter halted the filter chain.

marcel
--
Marcel Molina Jr. <marcel@vernix.org>