设计和当前页面?

时间:2013-05-26 00:11:12

标签: ruby haml ruby-on-rails-4

在我的Rails 4应用程序中,我使用设计来验证我的用户,并且我使用HAML和application_helper.rb设置了自定义导航栏创建器。帮助程序中的代码使用current_page来决定将“活动”类添加到HTML元素的位置,因为我正在使用twitter引导程序。现在我所说的一切都运行正常,例如当你转到网站的根目录时,栏中的按钮处于活动状态(推入),但是如果你点击栏中的另一个项目并转到诸如/ sig_in /之类的pag您将被发送到该页面,但该页面的按钮未激活。我不确定这是一个设计或红宝石问题。这是我的代码:

的routes.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

1 个答案:

答案 0 :(得分:0)

对我来说这很有效(我在Rails 4中使用3.0.0.rc devise gem)

仅在routes.rb中:

devise_for :users

我有一个_login.html.haml插入_navigation.html.haml。路径助手由Devise自动提供。如果用户已登录,则会出现不同的链接。

%li=link_to 'Registration', new_user_registration_path
%li=link_to 'Sign in', new_user_session_path unless user_signed_in?
-if user_signed_in?
   %li=link_to 'Manage your registration', edit_user_registration_path
   %li=link_to 'Logout', destroy_user_session_path, method: :delete

希望它能以某种方式提供帮助。