我有一个包含标签A,B和C的页面,每个标签都包含一个'事物列表。当我创造一个新的东西'我指定它是否是列表A,B或C的一部分。我希望在新的'之后使用相应的标签。保存并有页面刷新。
这是我的标签HAML
%ul.nav.nav-tabs
%li.active
%a{href:"#a", :"data-toggle" => "tab"}
"A things"
%li
%a{href:"#b", :"data-toggle" => "tab"}
"B things"
%li
%a{href:"#c", :"data-toggle" => "tab"}
"C things"
.tab-content
#a.tab-pane.fade.in.active
"tab data"
#b.tab-pane.fade.in
"tab data"
#c.tab-pane.fade.in
"tab data"
我如何编写一个ruby条件,将active
类放在选项卡上,该选项目前在选项卡上进行了硬编码,而我只是将数据添加到了?
答案 0 :(得分:2)
类似的东西:
控制器:
class ThingsController < ActionController::Base
def create
@active_tab = *some logic to get the tab*
# create logic
end
end
查看:
%ul.nav.nav-tabs
%li{class: @active_tab.nil? || @active_tab == "A" ? "active : ""}
%a{href:"#a", :"data-toggle" => "tab"}
"A things"
%li{class: @active_tab == "B" ? "active : ""}
%a{href:"#b", :"data-toggle" => "tab"}
"B things"
%li{class: @active_tab == "C" ? "active : ""}
%a{href:"#c", :"data-toggle" => "tab"}
"C things"
.tab-content
%a.tab-pane.fade.in{class: @active_tab.nil? || @active_tab == "A" ? "active : ""}
"tab data"
%b.tab-pane.fade.in{class: @active_tab == "B" ? "active : ""}
"tab data"
%c.tab-pane.fade.in{class: @active_tab == "C" ? "active : ""}
"tab data"
尽管使用数组会更好。