I’m new to Ruby and Rails, and I’m learning at the same time I’m reading
books and following some threads on the web, and of course,
experimenting …
What’s the meaning of this: ?
session[:auth] ? yield : (
session[:intended_action] = action_name
session[:intended_controller] = controller_name
flash[:notice] = 'You need to be logged in to access this panel'
session_update_time
all_ok = 0
render(:template => 'login/index'))
so ? : is normally called the trinary operator, and is common to a
bunch of languages (C, Ruby, Javascript, etc ad nauseum).
In ruby,
a?b:c
is shorthand for
if a
b
else
c
end
( not so much in C, since if statements don’t have values in C )
So session[:auth] ? yield : ( … ) either yields to a block passed by
the calling function, or executes the code defined in (…), depending
on whether session[:auth] is truish (not false or nil).
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.