У меня есть эта логика в моем макете Haml, но я не знаю, что это значит:Что означает эта логика в HAML/Rails?
.navbar.navbar-inverse{class: (params[:controller] == 'welcome' ? "navbar-fixed-top" : "navbar-static-top")}
У меня есть эта логика в моем макете Haml, но я не знаю, что это значит:Что означает эта логика в HAML/Rails?
.navbar.navbar-inverse{class: (params[:controller] == 'welcome' ? "navbar-fixed-top" : "navbar-static-top")}
У вас есть DIV с классами navbar
и navbar-inverse
.
Другой класс есть, что условно. если ваш контроллер welcome
, то класс будет navbar-fixed-top
еще navbar-static-top
Приведенное HTML будет как этот
In case params[:controller] is `welcome`
<div class="navbar navbar-inverse navbar-fixed-top"> </div>
Для других значений для параметров [: контроллер]
<div class="navbar navbar-inverse navbar-static-top"> </div>
Внесение что @jyothu говорит (я понял, что SO нуждается в более фундаментальном объяснении)
Его тройное, если оператор
В 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 фиксированных сверху" или "NavBar-статический верх" на основе значение контроллера. '?' означает, если и ':' означает другое.
См. Мой ответ. Это может вам помочь. – Jyothu