On 27/10/06, Farrel Lifson <farrel.lifson / gmail.com> wrote:
> On 27/10/06, Joe Ruby MUDCRAP-CE <joeat303 / yahoo.com> wrote:
> > In Rails (it's more of a Ruby question though ;) ), I have:
> >
> > def before_update
> >   @var = get_old_var_value
> > end
> >
> > and if get_old_var_value returns a false value it causes the update to
> > cancel. Is there some function that'll return true after setting the
> > var? Something like, oh I dunno, set_var(:var, get_old_var_value).
> > Rails' write_attribute also seems to return the value of the var (so
> > false causes problems with it too). I know I can just simply do this:
> >
> > def before_update
> >   @var = get_old_var_value
> >   true
> > end
> >
> > But I'm just curious if there are other approaches.
> >
> > Thanks,
> > Joe
> >
> > --
> > Posted via http://www.ruby-forum.com/.
>
>  def before_update
>    @var = get_old_var_value || true
>  end
>
> This returns get_old_var_value if it's not false (or nil) or true
> otherwise. Is that what you need?
>
> Farrel
>
>

Whoops there's a syntax error in my solution. You want
 (@var = get_old_var_value) || true
otherwise you risk setting @var to true when get_old_var is false.

Farrel