음, 첫 번째 작업은 사용자를 찾아서 그가 존재하는 그룹에 추가하는 것입니다. 그가 존재하지 않는다면 이메일로 초대장을 보내고 초대장을 그룹에 속한 별도의 테이블에 넣는 것과 같은 일을하십시오. 그런 다음 동일한 이메일 주소를 가진 사람이 가입하는 경우 새 사용자를 직접 그룹에 가입 시키십시오. 총계 : 이메일 주소 행만 있고 그룹 모델에 속하는 "invited_user"와 같은 이름의 새 모델을 추가하십시오.
def invite_user
user = User.find_by_email(params[:email])
group = Group.find(params[:id])
if user
group.users << user
else
send_invite user.email
group.invited_users << user
end
end
을 그리고 당신은 성공적인 서명까지 한 후 기본 동작에 추가/대체 할 수 있도록 마지막으로 당신은 고안의 등록 컨트롤러를 서브 클래 싱해야합니다
class InvitedUser < ActiveRecord:Base
belongs_to :group
end
는이 같은 조치를 초대 만듭니다. 그런
class RegistrationsController < Devise::RegistrationsController
protected
def def after_sign_up_path_for(resource)
invited_user = InvitedUser.find_by_email(resource.email)
if invited_user
invited_user.group.users << resource
invited_user.destroy
end
after_sign_in_path_for(resource)
end
end
또는 뭔가를 : 그러나,이 부분은 내가 부분적으로 고안의 설명서에 의존하고있어 자신을 그것을 밖으로 시도하지 않았기 때문에 신뢰할 수 없습니다. 물론 send_invite 액션을 구현해야합니다. 물론