在我的 Rails 4 应用程序中,我使用 devise 对我的用户进行身份验证,并且我已经使用 HAML 和 application_helper.rb 设置了一个自定义导航栏创建器。帮助程序中的代码使用 current_page 来决定将“活动”类添加到 HTML 元素的位置,因为我使用的是 twitter 引导程序。现在我所说的一切都很好,例如当您转到站点的根目录时,栏中的按钮处于活动状态(按下)但是如果您单击栏中的另一个项目并转到诸如 /sig_in/ 之类的页面您被发送到该页面,但该页面的按钮未激活。我不确定这是设计问题还是红宝石问题。这是我的代码:
路线.rb
devise_for :users, :path => ''
_nav.html.haml
= navigation_link_to 'Home', root_path
/ Insert Additional Nav
= navigation_link_to 'Sign in', new_user_session_path
application_helper.rb
def navigation_link_to(text, path)
link_to text, path, class: "btn#{active_link(path)}"
end
def active_link(path)
' active' if current_page?(path)
end