|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hello,
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')) I understand what it does, but not what means: ? yield : ( ... some code ...) thanks! raimon -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Dec 3, 1:56 pm, Raimon Fs <co...@montx.com> wrote:
> Hello, > > 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')) > > I understand what it does, but not what means: > > ? yield : ( ... some code ...) > > thanks! > > raimon > -- > Posted viahttp://www.ruby-forum.com/. 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). |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
? is the equivalent to 'if' kinda.. For example
a = 10 if a == 10 then <something> else <something else> end is the same is a == 10 ? <something> : <something else> Hope that ed. Regards, Lee -- Posted via http://www.ruby-forum.com/. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Raimon Fs wrote:
> I understand what it does, but not what means: > > ? yield : ( ... some code ...) foo ? bar : baz is equivalent to if foo then bar else baz end HTH, Sebastian -- Jabber: sepp2k@jabber.org ICQ: 205544826 |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
|
|
![]() |
| Outils de la discussion | |
|
|