2009-12-15 9 views
1

사용자에게 http://domain.com/4yT67rw과 같은 링크/키를 제공하여 자동 로그인을 설정하려고합니다. 마지막 7 자리 숫자는 무작위이며 사용자 모델에 할당됩니다.자동 로그인을위한 레일스 맞춤 라우팅

맞춤 라우팅을 사용하여이 작업을 수행 할 수 있습니까? 나는 그것이 모델 이름이나 오류가 아니라 열쇠라는 것을 발견하는 정규식과 같아야 만 할 것이라고 상상한다. 사용자의 컨트롤러

map.connect 'reg_ex_here', :controller => 'users', :action => 'key_redirect' 

다음 :

def key_redirect 
    user = User.find_by_key(key) 
    redirect_to user_path(user) 
end 

또는 내가 모르는 아마도 다른 쉬운 방법 내가 좋아하는 뭔가를 할 수 있다면

좋은 것입니다. ;)

덕분에이 같은

답변

3

무언가가 당신을 위해 작동합니다 :

map.key_redirect '/:key_id', :requirements => {:key_id => /regex_here/}, :controller => 'users', :actions => 'key_redirect' 

모든 경로와 마찬가지로, 당신은 다음 URL을 구성 할 때 key_redirect_path 또는 key_redirect_url 참조 할 수 있습니다.

+0

굉장합니다. 고마워, 많이 알지 못했다 : 요구 사항 – Shagymoe

+0

만약 당신이 이것을하려고한다면, 루트 URL에서하지 말 것을 제안 할 것이다. 대신/sessions/new/234829와 같은 것일 수 있습니다. – jonnii

+0

안녕하세요, Jonnii, 이유에 대해 자세히 설명해 주시겠습니까? 대문자와 소문자의 영숫자로 구성된 16 자리 키는 1498858244768912625744091545600000 개의 조합을 가질 수 있으므로 무언가를 무력화시키는 것에 대해 걱정하지 않습니다. – Shagymoe

관련 문제