2011-02-13 4 views
1

저는 최근에 인증 루틴을 고안했습니다. 그러나, 나는 아직도 그것에 라우팅 문제를 가지고 약간의 문제가있다. 사용자가 로그인하면 다음과 같은 경로가 있습니다.내 길을 어지럽히는 장치가 있습니다.

devise_for :users 

    namespace :user do 
    root :to => "town#index" 
    end 

로그인 한 후 마을 컨트롤러로 리디렉션됩니다. 이 난이 라인이이 실제로 편안 인증 잘 작동

<%= link_to raw("<p class='menu_head'>#{t('menu.inventory')}</p>"), :controller => "character" %> 

, 그러나 유증을 위해 내가 다른 내가 얻을 "/ 문자"로 컨트롤러를 지정해야 할 일 :

No route matches {:controller=>"user/character"} 

을 이 경로는 잘못되었지만 이 문제를 어떻게 해결할 수 있습니까?

또한이 문제는 다시 작성한 것으로 생각됩니다. 새로운 사용자가 등록 할 때, devise는 로그인했을 때와 같이 town # 인덱스로 리디렉션합니다.이 경우 어떤 이유로 current_user가 초기화되지 않습니다. 이것은 사용자가 로그인 할 때가 아니라 가입 후에 만 ​​발생합니다. 나는 꽤 잘못 생각하고 있습니다.

답변

0

이 컨트롤러에 연결하는 옵션 대신 라우팅 도우미를 사용해야합니다. 경로 파일에 경로 도우미를 정의하고이를 대신 사용하십시오. 이렇게하면 항상 올바른 URL이 제공됩니다.

귀하의 신청서가 users/town으로 귀하를 보내 드리고 있습니다. 귀하가 말씀하시는 것이기 때문입니다. 로그인 URL은 /users/sign_in이고 :controller을 전달하면 "/users/town"으로 변경됩니다. 이름이 지정된 경로를 사용하는 경우에는 이런 일이 발생하지 않습니다.

+0

이름이 지정된 경로를 사용하고 싶지는 않습니다. 문제는 아마도 사용자가 잘못 설정 한 것입니다. 내 로그인 절차는 집 컨트롤러에서 시작하고 로그인에 성공하면 사용자가 마을 컨트롤러로 리디렉션됩니다. 그렇지 않으면 그는 머무르게됩니다. 컨트롤러 컨트롤러가 내 컨트롤러를 망치고있는 것처럼 보입니다./ – Spyros

+0

@SpyrosP : 내가 가진 경험 * 연수를 들어주세요. 명명 된 경로를 사용하면 즉시이 문제를 해결할 수 있으므로 아무런 노력이 필요하지 않습니다 . –

+0

안녕하세요, 절대 안됩니다. 당신의 경험을 판단하려는 의도, 정말로. 왜 이것이 일어나는 지 이해하고 싶었습니다. ng. 나는 그것이 명명 된 루트로 작동한다고 확신한다. 나는 이미 언급 한 것과 비슷한 것을하고있다. 문제는 컨트롤러가 컨트롤러와 어지러운 이유입니다. – Spyros

관련 문제