我的HAML布局中有这个逻辑,但我不知道这意味着什么:
.navbar.navbar-inverse{class: (params[:controller] == 'welcome' ? "navbar-fixed-top" : "navbar-static-top")}
答案 0 :(得分:2)
您有一个包含navbar
和navbar-inverse
类的div。
另一类是有条件的。如果您的控制器为welcome
,那么该课程将为navbar-fixed-top
其他navbar-static-top
生成的HTML将是这样的
In case params[:controller] is `welcome`
<div class="navbar navbar-inverse navbar-fixed-top"> </div>
对于params [:controller]
的其他值<div class="navbar navbar-inverse navbar-static-top"> </div>
答案 1 :(得分:0)
添加@jyothu所说的内容,(我认为SO需要更基本的解释)
其三元if运算符
在Ruby中,
1.9.3p385 :001 > a = 100
1.9.3p385 :002 > if a == 100
1.9.3p385 :003?> b = 200
1.9.3p385 :004?> else
1.9.3p385 :005 > b = 300
1.9.3p385 :006?> end
1.9.3p385 :007 > p b
200
1.9.3p385 :008 > b = (a == 100 ? 200 : 300) # one line if statement
1.9.3p385 :009 > p b
200
所以这句话,
(params[:controller] == 'welcome' ? "navbar-fixed-top" : "navbar-static-top")
将根据控制器的值返回“navbar-fixed-top”或“navbar-static-top”。 '?'表示,如果和':'表示其他。