2012-12-29 2 views
1

사용자가 내 애플리케이션에 등록하도록 초대 코드 요구 사항을 추가하고 싶습니다. 나는 발명품을 위해 devise_invitable 보석을 조사했다. 그리고 이것은 매우 유망 해 보인다. 그러나 devise_invitable과 같이 지속적으로 사람들을 응용 프로그램에 초대해서는 안됩니다.개발자 코드 초대 코드

이 문제를 해결하려면 응용 프로그램에 사용자 수준을 주입해야합니다. github에서 this project을 찾았는데 다음 아이디어를 얻었습니다. 사용자가 (다른 기존 사용자가 초대 한) 레벨 1에서 시작하고 경험 지점을 보관하기 위해 작업을 완료해야합니다. 그는 1 명의 신입 회원을 초대 할 수있는 다음 단계로 나아가고 다음 단계에서는 1 명을 초대하고 다음 단계에서는 2 명의 회원을 초대 할 수 있습니다.

나는 Ruby에 새롭다. 나는 이것을 encomplish하는 방법과 이것이 내 사용자 컨트롤러에 삽입하는 것이 가능한지 알고 싶다.

읽어 주셔서 감사 드리며 좋은 하루 보내십시오.

답변

2

이것은 사용자의 초청장 수가 데이터베이스에 저장된 정수이기 때문에 상당히 간단한 프로세스 여야합니다. 매우 간단한 구현, 당신은 단지 사용자의 수준에 통과 초대의 현재의 수에 추가하고, 사용자를 저장하는 동안

def level_up(level) 
    self.invitation_limit += level 
    self.save 
end 

: 그것은 같은 간단한 수 있습니다. 모든 것은 실제로 당신이 원하는 것을 얼마나 좋아하는지에 달려 있지만, 실제로는 기본 수학으로 넘어가 데이터베이스에 저장합니다. 문제는 2012 년에 부탁 된 이후이 변경되었을 경우

+0

삭제 해 주셔서 감사합니다. 나는 그것을 전에 보지 못했다. 그러나 그것은 8 일 전에 포크에서 지적되었다. –

0

는 잘 모르겠어요하지만 invitation_limit 매개 변수 devise_invitable 있습니다

invitation_limit : 사용자가 보낼 수있는 초대장의 수는. 기본값 nil은 사용자가 원하는만큼 많은 초대를 보낼 수 있음을의 L합니다. 사용자에 대한 제한이 없으며 invitation_limit 열은 사용되지 않습니다. 0으로 설정하면 초대장을 보낼 수 없습니다. n> 0 설정은 n 명의 초대장을 보낼 수 있음을 의미합니다. 그들이 더 많거나 적은 초대장을 보낼 수 있도록 당신은 글로벌 invitation_limit로, 일부 사용자 invitation_limit 열을 변경할 수 있습니다 = 0

이 매개 변수가 소스 here보고 사용하는 방법을 볼 수 있습니다. 중요한 부분 :

# Return true if this user has invitations left to send 
def has_invitations_left? 
    if self.class.invitation_limit.present? 
    if invitation_limit 
     return invitation_limit > 0 
    else 
     return self.class.invitation_limit > 0 
    end 
    else 
    return true 
    end 
end