User が has_and_belongs_to_many グループを持つ特別なシナリオで、devise および devise_invitable gem を使用する Rails/Mongoid アプリケーションがあります。アプリケーションでこれは、ユーザーが他のユーザーによって 1 つ以上のグループに招待される可能性があることを意味します。新規ユーザーと既存ユーザーの両方の招待を処理するために devise_invitable を使用しています。
私が問題を抱えているシナリオは、既にアカウントを登録して確認済みで、あるグループに既に招待されている可能性があるユーザーが、別のグループに招待された場合です。この場合、システムは通常どおり新しい招待状を送信しますが、招待される新しい招待状を作成するのではなく、既存のユーザーに対して送信します。
ユーザーが招待を確認すると、すべて問題なく動作しますが、私が抱えている問題は、ユーザーが確認しない限り、アラートを受け取るため、ユーザー アカウントに再度ログインできないことです。
You have a pending invitation, accept it to finish creating your account.
だから、すでに確認されているが保留中の招待があるユーザーとしてログインしようとするときに、そのコントロールをスキップするために、どうすればいいのか、Devise/Devise_invitable で何をオーバーライドすればよいのか疑問に思っています。
私のユーザーモデルはこれです:
class User
include Mongoid::Document
include Mongoid::Attributes::Dynamic
include Mongoid::Timestamps
include Mongoid::Userstamp::User
devise :invitable, :encryptable, :database_authenticatable, :registerable, :lockable, :recoverable, :confirmable, :rememberable, :trackable, :validatable, :timeoutable
has_and_belongs_to_many :groups
ありがとう!