【Rails】 devise로 신규 등록 후 또는 로그인 후 root_path 이외의 페이지로 건너 뜁니다.
devise에서 새로 등록했지만 root_path 이외의 페이지로 건너 뛰고 싶습니다 ...
지금까지 devise 사용해 왔지만 신규 등록이나 로그인을 하면 root_path의 페이지에 마음대로 돌아가 로그인하고 있는 상태가 되었습니다만(아니-편리), 사이트 만들고 있는 도중에 root_path 이외의 페이지에 날렸다 일이 되어 조사해 보았습니다.
컨트롤러에 쓰고 날리기
root_path 이외의 페이지 천이는 아마 컨트롤러에 쓰지 않으면 할 수 없을지도
조사하고 있으면 application_controller.rb에 정리해 쓰는 쪽이나 각각의 동작에 맞추어 registrations_controller.rb나 sessions_controller.rb에 쓰는 쪽이 있었습니다만 이번은 application_controller.rb에 정리해 썼습니다.
그 전에 rails routes로 날고 싶은 path를 확인
이번에는 아래에서 두 번째 user_path로 날아갑니다.
application_controller.rb에 설명
application_controller.rbclass ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
user_path(resource)
end
end
이 'after_sign_in_path_for(resource)'로 로그인 후 어디 페이지로 날지 지정할 수 있어 안에 path를 쓰면 거기에 날아 버립니다. 이번에는 user_path입니다.
덧붙여서 path 옆에 (resource)라고 쓰고 있는 것은 URI Pattern이/users/:id이므로 이:id를 건네주기 위해서는 (resource)가 필요합니다. 이것이 없으면 오류가 발생합니다.
보충
이번에는 신규 등록 후나 로그인 후에 지정한 페이지로 날리는 방법이지만 로그아웃한 후에도 같은 방식으로 지정한 페이지로 날릴 수 있으므로 소개
application_controller.rbclass ApplicationController < ActionController::Base
def after_sign_out_path_for(resource)
index_path #今回は仮にindex_pathを置いていますがここにログアウト後のpathを書く
end
end
글쎄, 아무것도하지 않으면 root_path로 날아 가기 때문에 너무 많이 사용하지 않을 것 같습니다.
그럼
Reference
이 문제에 관하여(【Rails】 devise로 신규 등록 후 또는 로그인 후 root_path 이외의 페이지로 건너 뜁니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ISSO33/items/6ca358bb288e2b236f60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
user_path(resource)
end
end
class ApplicationController < ActionController::Base
def after_sign_out_path_for(resource)
index_path #今回は仮にindex_pathを置いていますがここにログアウト後のpathを書く
end
end
Reference
이 문제에 관하여(【Rails】 devise로 신규 등록 후 또는 로그인 후 root_path 이외의 페이지로 건너 뜁니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ISSO33/items/6ca358bb288e2b236f60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)