Skip to content

Are there plans for a dedicated invitation model? #888

@christianrolle

Description

@christianrolle

Hey 😄
I tried to move the invitation into a dedicated Invitation model. Main reason for that attempt was that most users never are invited. So why having those extra attributes for them? And furthermore it feels natural. Like User has one invitation.
However I simply delegated the attributes to the dedicated Invitation model, like:

class User < ApplicationRecord
  has_one :invitation

  delegate :user_invitation_token, to: :invitation, allow_nil: true
  delegate :user_invitation_created_at, :invitation_created_at=, to: :invitation, allow_nil: true
  delegate :user_invitation_sent_at, :invitation_sent_at=, to: :invitation, allow_nil: true
  delegate :user_invitation_accepted_at, :invitation_accepted_at=, to: :invitation, allow_nil: true

  def user_invitation
    invitation || build_invitation
  end
end

class Invitation < ApplicationRecord
  belongs_to :user
end

But had to stop because finding a user by its invitation token heavily relies on the Devise#find_or_initialize_with_error_by
which I obviously don't wanna screw up.
So I think it is currently not easy to extract the invitation into a dedicated model.
My question: Are there plans in regards to this? Does it make sense from your side?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions