devise를 사용한 로그인 사용자와 로그인되지 않은 사용자 간의 전환
무엇을 하고 싶은가
로그인 한 후 보여주고 싶은 홈 화면을 root_path로 설정했기 때문에
로그인하지 않은 사용자는 앱 추천 페이지로 이동하도록 설정합니다.
설명
이 페이지에 쓰여진 대로 devise를 사용한 것이 됩니다.
아직 devise를 넣지 않은 분은 넣고 나서 이 페이지로 돌아와 주세요.
그런데 본제에 들어갑니다
먼저 컨트롤러의 설명을 변경합니다.
photos_controller.rbclass PhotosController < ApplicationController
before_action :move_to_index #ここを追加で記述
def index
end
#ここから下を追加で記述
private
def move_to_index
unless user_signed_in?
redirect_to controller: :homes, action: :index
end
end
end
무엇을 하는지 위에서 설명합니다.
before_action :move_to_index
before_action 은 컨트롤러의 모든 액션이 실행되기 전에 어떤 처리를 할 때 사용하는 것입니다.
그 before_action에 move_to_index라는 메소드를 지정합니다.
방법이므로 여기는 여러분이 설명이 다릅니다.
그럼 그 방법은 어디서 정의하고 있는 거야? ? 그것은 나중에 설명합니다.
private
클래스 밖에서 호출할 수 없는 메서드입니다.
Ruby에서는 private이라고 쓰는 다음 코드가 비공개 메서드입니다.
내 해석은이 컨트롤러 내에서만 사용할 수있는 메소드로 해석하고 있습니다. 다르면 죄송합니다...
def move_to_index
여기서 move_to_index를 정의합니다.
방금 before_action :move_to_index로 연결됩니다.
그럼 move_to_index에서 어떤 일을하고 있는지 살펴 보겠습니다.
unless user_signed_in?
user_signed_in?은 devise를 넣는 것으로 사용할 수 있는 헬퍼 메소드입니다
사용자가 로그인했는지 확인
거기에 unless ~가 없다면 같은 의미입니다.
이 단어가 오면 로그인하지 않으면 ~로 다음 줄로 이동합니다.
redirect_to controller: :homes, action: :index
조금 문장이 길기 때문에
redirect_to에 우선 주목합니다. 이것은 지정된 URL로 전환 할 수있는 메소드입니다.
그래서
controller.rbredirect_to "http://www.○○○○.com"
하지만 가능합니다.
controller.rbredirect_to root_path
와 같이 Prefix 이름도 지정할 수 있습니다.
controller.rbredirect_to controller: :homes, action: :index
마지막으로 지정한 컨트롤러의 동작을 지정할 수도 있습니다.
그 밖에도 아직 할 수 있으므로 꼭 검색해 보세요
이것으로 흐름으로서
index가 로드되기 전에 before_action에서 먼저 mobe_to_index 메소드를 읽습니다. 그 중에는 사용자가 로그인하지 않은 경우 여기로 전환하면 설정할 수있었습니다.
라우팅
컨트롤러에서
redirect_to controller: :homes, action: :index
그리고 마지막으로 작성되었습니다.
homes 컨트롤러의 index 액션이 호출됩니다.
routes.rbget '/homes/home', to:'homes#index'
작성
/homes/home은 URL 이름 지정입니다.
이런 느낌이 되고 있습니다.
그리고 homes#index
homes 컨트롤러의 index 액션을 지정합니다.
이것으로 끝
Reference
이 문제에 관하여(devise를 사용한 로그인 사용자와 로그인되지 않은 사용자 간의 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eleaco/items/6905aa8717c11d684338
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 페이지에 쓰여진 대로 devise를 사용한 것이 됩니다.
아직 devise를 넣지 않은 분은 넣고 나서 이 페이지로 돌아와 주세요.
그런데 본제에 들어갑니다
먼저 컨트롤러의 설명을 변경합니다.
photos_controller.rb
class PhotosController < ApplicationController
before_action :move_to_index #ここを追加で記述
def index
end
#ここから下を追加で記述
private
def move_to_index
unless user_signed_in?
redirect_to controller: :homes, action: :index
end
end
end
무엇을 하는지 위에서 설명합니다.
before_action :move_to_index
before_action 은 컨트롤러의 모든 액션이 실행되기 전에 어떤 처리를 할 때 사용하는 것입니다.
그 before_action에 move_to_index라는 메소드를 지정합니다.
방법이므로 여기는 여러분이 설명이 다릅니다.
그럼 그 방법은 어디서 정의하고 있는 거야? ? 그것은 나중에 설명합니다.
private
클래스 밖에서 호출할 수 없는 메서드입니다.
Ruby에서는 private이라고 쓰는 다음 코드가 비공개 메서드입니다.
내 해석은이 컨트롤러 내에서만 사용할 수있는 메소드로 해석하고 있습니다. 다르면 죄송합니다...
def move_to_index
여기서 move_to_index를 정의합니다.
방금 before_action :move_to_index로 연결됩니다.
그럼 move_to_index에서 어떤 일을하고 있는지 살펴 보겠습니다.
unless user_signed_in?
user_signed_in?은 devise를 넣는 것으로 사용할 수 있는 헬퍼 메소드입니다
사용자가 로그인했는지 확인
거기에 unless ~가 없다면 같은 의미입니다.
이 단어가 오면 로그인하지 않으면 ~로 다음 줄로 이동합니다.
redirect_to controller: :homes, action: :index
조금 문장이 길기 때문에
redirect_to에 우선 주목합니다. 이것은 지정된 URL로 전환 할 수있는 메소드입니다.
그래서
controller.rb
redirect_to "http://www.○○○○.com"
하지만 가능합니다.
controller.rb
redirect_to root_path
와 같이 Prefix 이름도 지정할 수 있습니다.
controller.rb
redirect_to controller: :homes, action: :index
마지막으로 지정한 컨트롤러의 동작을 지정할 수도 있습니다.
그 밖에도 아직 할 수 있으므로 꼭 검색해 보세요
이것으로 흐름으로서
index가 로드되기 전에 before_action에서 먼저 mobe_to_index 메소드를 읽습니다. 그 중에는 사용자가 로그인하지 않은 경우 여기로 전환하면 설정할 수있었습니다.
라우팅
컨트롤러에서
redirect_to controller: :homes, action: :index
그리고 마지막으로 작성되었습니다.
homes 컨트롤러의 index 액션이 호출됩니다.
routes.rbget '/homes/home', to:'homes#index'
작성
/homes/home은 URL 이름 지정입니다.
이런 느낌이 되고 있습니다.
그리고 homes#index
homes 컨트롤러의 index 액션을 지정합니다.
이것으로 끝
Reference
이 문제에 관하여(devise를 사용한 로그인 사용자와 로그인되지 않은 사용자 간의 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/eleaco/items/6905aa8717c11d684338
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
redirect_to controller: :homes, action: :index
get '/homes/home', to:'homes#index'
Reference
이 문제에 관하여(devise를 사용한 로그인 사용자와 로그인되지 않은 사용자 간의 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eleaco/items/6905aa8717c11d684338텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)