devise_invitable icon indicating copy to clipboard operation
devise_invitable copied to clipboard

Has_many inviters instead of belongs_to

Open gyarra opened this issue 12 years ago • 4 comments

If Joe sends an invitation to Alice, and later in the day Fred also sends an invite to Alice, we lose the information that Joe sent the initial invite. There's only one invited_by field, and the value stored there is the last inviter.

This doesn't meet the requirements for my application because we give credit to members for inviting other members. When Alice accepts the invitation, the second inviter, Fred, receives credit. Joe should also receive credit.

The best way to fix this would be to create a separate table for invitations. invited_by would become a has_many :through relationship rather than a belongs_to relationship. Invitations would belong_to inviter and also belong_to resource. So Invitations would be a many-to-many mapping table.

This may be more complication than you want to get into for the gem, but I'm not sure of another good way to fix this problem. A lot of sites want to give users credit for invites, so this seems like something that would be useful.

Thanks for the gem! Gabe

gyarra avatar Aug 15 '12 18:08 gyarra

Are there any plans for doing something like this?

scashin133 avatar Oct 03 '14 00:10 scashin133

Remember how it worked when gmail started? Participation upon invitation only. User A receives a code/link to sign up and may invite up to x other people who may also invite up to x other people.

Such a feature would be a real cool thing - just think about how startups can use it to go viral.

Anyone implemented that already and can share the code?

frankis avatar May 25 '15 13:05 frankis

@frankis You only have to disable registrations and set a limit on invitations

scambra avatar May 25 '15 15:05 scambra

In the meanwhile this feature is not implemented, I built this gem that, on top of devise_invitable, implements multiple invitations.

RoxasShadow avatar Jan 22 '16 18:01 RoxasShadow