2014-02-21 8 views
0

사용자가 친구를 사이트에 초대하는 기능을 구현하려고합니다. 초대 된 사람이 페이지에 착륙하여 해당 페이지를 볼 것입니다. 링크를 클릭하여 다른 페이지를 보려고하면 가입을 요청합니다.게스트 사용자의 단일 페이지보기 만 허용 (Devise on Rails 사용)

Devise timeoutable을 사용하고 게스트 사용자가 세션을 1. 초로 설정하려고 생각했습니다. 그러면 다음과 같이됩니다 :

class User < ActiveRecord::Base 
    devise (...), :timeoutable 

    def timeout_in 
    if self.guest? 
     1.second 
    end 
    end 
end 

이 상황을 처리하는 올바른 방법입니까? 아니면 더 좋은 방법이 있습니까?

답변

2

아마도 authenticate_user를 추가 할 수 있습니다! 귀하의 ApplicationController에

class ApplicationController < ActionController::Base 
    ...................... 

    before_filter :authenticate_user! 

그리고 손님이 방문 할 페이지에 대한 필터를 건너 뜁니다.

+0

흥미로운 아이디어지만, 내가 이것을하려고하는 이유는 한 페이지를보고 즉시 가입을 요청하기 때문입니다. 따라서 볼 수있는 유일한 페이지는 첫 번째 방문 페이지입니다. 어떻게 접근 할 수 있을지 모르겠다. – Vlad

+0

그러면 방문 페이지가 손님의 친구가 링크를 제공하는 임의의 페이지 일 수 있다는 의미인가? – lalameat

+0

예,하지만 "임의"페이지는 아니지만 예를 들어 게시물을 공유 할 수 있으며 한 번 읽을 수 있습니다. 하지만 그 후에는 네비게이션을 시도 할 수 없다면 로그인해야합니다. – Vlad