在我的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
答案 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
希望它能以某种方式提供帮助。