2013-05-26 5 views
3

내 Rails 4 앱에서 사용자를 인증하기 위해 devise를 사용하고 HAML과 application_helper.rb를 사용하여 사용자 정의 탐색 모음 생성자를 설정했습니다. 도우미의 코드는 current_page를 사용하여 트위터 부트 스트랩을 사용하기 때문에 HTML 요소에 '활성'클래스를 추가 할 위치를 결정합니다. 이제 내가 말한 모든 것들은 사이트의 루트에 가서 바의 버튼이 활성화되어있을 때 (밀어 넣음) 바에서 다른 아이템을 클릭하고/sig_in/당신은 페이지로 보내지지만 해당 페이지의 버튼은 활성화되어 있지 않습니다. 임씨는 확신 할 수 없다. 이것은 장치 또는 루비 문제이다. 여기에 내 코드입니다 :이 꽤 잘 작동 나를 위해Devise 및 current_page?

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

(I 레일즈에서 3.0.0.rc devem gem을 사용하십시오. 4)

단지 routes.rb 0

:

devise_for :users 

나는 _navigation.html.haml에 삽입되는 _login.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 

어떻게 든 도움이 될 수 있기를 바랍니다.