Getting (var = false) to return true?

In Rails (it’s more of a Ruby question though :wink: ), 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

On 27/10/06, Joe R. MUDCRAP-CE [email protected] wrote:

false causes problems with it too). I know I can just simply do this:


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

Farrel L. wrote:

On 27/10/06, Joe R. MUDCRAP-CE [email protected] wrote:

false causes problems with it too). I know I can just simply do this:


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

Nah, I need the value returned from the function to always be true. Hmm,
maybe this will work:

def before_update
(@var = get_old_var_value) || true
end

Joe

On 27/10/06, Farrel L. [email protected] wrote:

Rails’ write_attribute also seems to return the value of the var (so
Joe

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

Farrel L. wrote:

Nah, I need the value returned from the function to always be true. Hmm,
maybe this will work:

Ruby considers any object that is not false or nil to be true.

Yup.

Nah, I need the value returned from the function to always be true. Hmm,
maybe this will work:

Ruby considers any object that is not false or nil to be true.

Joe R. MUDCRAP-CE wrote:

(@var = get_old_var_value) || true
Err… why is that better than
@var = get_old_var_value; true
?

Devin

Joe R. MUDCRAP-CE wrote:

This returns get_old_var_value if it’s not false (or nil) or true
otherwise. Is that what you need?

Farrel

Nah, I need the value returned from the function to always be true. Hmm,
maybe this will work:

def before_update
(@var = get_old_var_value) || true
end

In that case the code is too complicated. Rather use

def before_update
@var = get_old_var_value
true
end

There is no point in having “||” or “or” here.

robert