【发布时间】:2015-05-12 00:26:18
【问题描述】:
在一个名为x.html.erb 的erb 文件中,我被下面的小sn-p 代码弄糊涂了:
<% params[:tab] |= "Excursion" %>
<% availableModels.each do |modelName| %>
<% if modelName == "Excursion" %>
<li class="<%= params[:tab]=='excursions' ? 'active':''%>">
<a id="excursions_tab" href="#tabExcursions" data-toggle="tab"> Excursions
</a>
</li>
<% elsif modelName == "Workshop" %>
<li class="<%= params[:tab]=='workshops' ? 'active':''%>">
<a id="workshops_tab" href="#tabWorkshops" data-toggle="tab">Workshop
</a>
</li>
<% end %>
我发现我无法弄清楚params[:tab]是如何更改的,例如从params[:tab] = 'excursions'更改为params[:tab] = 'workshops',反之亦然,或者说当我切换一个标签Excursion时谁更改了params[:tab]的值或者Workshop对应的html:
<li class="active">
<div id="tab_excursions"> ...</div>
</li>
<li class>
<div id="tab_resources"> ... </div>
</li>
或
<li class>
<div id="tab_excursions"> ...</div>
</li>
<li class="active">
<div id="tab_resources"> ... </div>
</li>
为了找到答案,我尝试将 params[:tab] 更改为 params[:tabx] 并发现它也可以正常工作。而从<%= params[:tab]=='excursions' ? 'active':''%>来看,这一定是相对于某个rails的魔法吧?
【问题讨论】:
标签: ruby-on-rails twitter-bootstrap ruby-on-rails-3.2