2012-03-16 2 views
1

컨트롤러에서 자주 require_admin!을 사용합니다. 그것은 위대한 작품.config/routes.rb에서 명명 된 경로에 액세스 제어를 어떻게 추가합니까?

지금, 그래서 같은 이름 경로를 추가 할 :

# config/routes.rb 
match "poniesandrainbows" => redirect("https://poniesandrainbows.com") 
# ^sadly, not really a website, btw.^ 

어떻게 그 길에 대한 액세스를 제한합니까? 이것이 가능한가? 분명히 공용 URL로 리디렉션되지만 여전히 경로를 비공개로 유지하려고합니다.

답변

1

경로의 액세스를 제한 할 수 없습니다.

"poniesandrainbows"를 require_admin을 사용할 수있는 컨트롤러와 일치시키는 가장 안전한 방법! 공개 URL로 리디렉션하십시오.

프런트 엔드에서 문제를 해결할 수 있습니다. 관리자 사용자에게만 링크가 표시 될 수 있습니다. 다른 사용자가 브라우저 URL에 직접 링크를 붙여 넣을 수 없도록 막을 수는 있습니다.

1

그런 종류의 기능을 컨트롤러에 캡슐화해야합니다. 라우터는 올바른 컨트롤러에 요청을 전달하는 배관을 처리합니다. 요청을 처리하는 방법을 올바르게 파악하는 것은 컨트롤러의 임무입니다. 이 원인에서 컨트롤러는 인증 서비스 (예 : require_admin!)를 사용하여 사용자의 리디렉션이 허용되는지 또는 다른 운명의 운명인지 판단합니다.

관련 문제