使用If语句根据页面更改导航栏元素

时间:2016-04-29 00:47:50

标签: ruby-on-rails-4 twitter-bootstrap-3

有没有办法使用if语句根据你所在的页面操纵导航栏中的元素?

例如,我尝试做的是我在主屏幕上的导航栏是透明的,链接文本是黑色的。如果我将鼠标悬停在导航栏链接上,则链接文本将变为白色并带有黑色背景(这是我的类nav-font完成的)。见下面的截图:

enter image description here 但是,我希望这个颜色方案对于不是主页的所有其他页面是反转的(或相反的)。目前Rails有可能吗?

所以我想使用以下伪代码在我的布局文件(application.html.erb)中执行以下操作:

#include<iostream>
#include<ctime>
#include<string>

using namespace std;

int main()
{
    time_t t1 = time(NULL);
    cout << "time now " << ctime(&t1) << endl;
    time_t t2 = t1 + 10000.0;
    string t1s = ctime(&t1);
    string t2s = ctime(&t2);
    cout << "time now " << t1s << endl << " time later " << t2s <<endl;
}

我想知道的是:

  1. 这可能吗?如果是这样,我怎么能完成这个呢?
  2. 如果没有,是否有更简单的解决方案或替代方案?

1 个答案:

答案 0 :(得分:2)

<% if controller_name == "your controller" && action_name = "your method" %>
    <ul class="nav navbar-nav navbar-right nav-font">
        <li><%= link_to "About", about_path %></li>
        <li><%= link_to "Contact", new_contact_path %></li>
    </ul>
<% else %>
    <ul class="nav navbar-nav navbar-right nav-font-inverted">
        <li><%= link_to "About", about_path %></li>
        <li><%= link_to "Contact", new_contact_path %></li>
    </ul>        
<% end %>