0

devise_invitable をアプリに追加したところ、devise が既に実装されています。

招待プロセス自体はすべて正常に機能します (電子メールが送信され、新しいユーザーがリンクをクリックしてパスワードを設定できるなど)。

問題は、招待者aUserに が関連付けられており、招待者が [招待状を送信] ボタンをクリックProfileすると削除されることです。

招待プロセスが招待者の関連オブジェクトを破壊する理由を知っている人はいますか? これを devise_invitable コードで追跡しようとしていますが、以前にこの問題が発生したことがあるかどうか、または devise のコードのどこに問題があるかを知っているかどうかを知っておくとよいでしょう。

User:_

has_one :profile, :inverse_of => :user, :dependent => :destroy

Profile

belongs_to :user, :inverse_of => :profile
4

1 に答える 1

0

ここでのエラーは、デフォルトでは、devise_invitable がafter_invite_path_for単純に を呼び出すためafter_sign_in_path_forです。

ただし、現在のユーザーを として渡すことはありませresource。これは、通常のサインインの場合です。

after_sign_in_path_for私が行ったように、本物のサインインの後にのみ呼び出されると仮定してオーバーライドすると、混乱する可能性があります。

(私の特定のケースでは、オーバーライドされたメソッドが行ったことは、 の関連付けられたプロファイルを探すことでした。resourceプロファイルがない場合は、ユーザーが初めてログインしていると仮定して新しいプロファイルを作成します。devise_invitable が渡されたとき予期しないリソースである場合、この新しいプロファイル オブジェクトは既存の関連付けを上書きし、:dependent => :destroyコールバックは古いプロファイル オブジェクトでトリガーされます.D'oh!)

于 2012-04-25T16:33:22.040 に答える