Rails选项卡选项

时间:2011-02-24 03:22:15

标签: html ruby-on-rails

我有一个类似于标签的按钮界面,可以使用以下HTML与我的网站进行交互

<li class="current_page_item"><a href="/home" class="first">Home</a></li>
<li><a href="/projects">Projects</a></li>
<li><a href="/resume">Resume</a></li>
<li><a href="/contact">Contact</a></li>

class="current_page_item属性会更改标签的外观。每个网址都是一个管理我的StaticPages控制器的视图,如何让每个视图都选择其相应的“标签”?

2 个答案:

答案 0 :(得分:5)

current_page?(url)方法可以帮助您。

创建一个额外的辅助方法。

module ApplicationHelper
  #...
  def tab_item(name, url)
    opts = {}
    opts[:class] = 'current_page_item' if current_page?(url)
    content_tag :li, opts do
      link_to name, url
    end
  end
  #...
end

在你的视图中使用它

<%= tab_item 'Home', root_path %>
<%= tab_item 'Projects', projects_path %>
<%= tab_item 'Resume', resume_path %>
<%= tab_item 'Contact', contact_path %>

答案 1 :(得分:1)

使用before_filter

的方法在控制器中添加set_current_tab
def set_current_tab
  @current_tab = "Projects"
end

然后,您可以在视图中检查此var,并在@current_tab等于当前标签行项目时显示标签。