다음과 같이 세션 컨트롤러가 있습니다 : new, : create 및 : delete 작업.게시가 실패 할 때 레일이 컨트롤러 부분을 변경하지 못하도록하십시오.
def controller_for(path)
Rails.application.routes.recognize_path(path)[:controller]
end
일반적으로는,이 방법은 잘 작동하지만 잘못된 로그인 세부 사항을 가진 사용자가 방문 /login
및 징후 인이 다음 레일 경우 /sessions
에 URL을 변경하고 렌더링 : 나는 또한 현재 페이지 컨트롤러를 확인하는 방법이
>> r = Rails.application.routes
>> r.recognize_path "/sessions"
=> {:controller=>"sessions", :action=>"index"}
: 포인트 내 방법은 위의 arror를 throw되는
:new
동작은
No route matches "/sessions"
이 recognize_path
이 작업을 수행하려고하는 것 같다
색인 작업이 없으므로 오류가 발생합니다. 내가 정말 원하는 것은 이것이다 :
>> r.recognize_path "/login"
=> {:controller=>"sessions", :action=>"new"}
그래서 로그인이 대신 /sessions
로 변경 실패 할 때 내가 /login
로 URL을 유지하기 위해 레일을 강제 할 수있는 방법?
감사합니다. 누군가가 이것을 대답했음을 알았습니다. 좋은 정보가 있습니다. 지금은 이해합니다. – stephenmurdoch
다행 이었기 때문에 기뻤습니다. 내 Stack 응답을 때때로 잃어 버린다.) –