問題タブ [devise-invitable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
542 参照

ruby-on-rails - 招待状が送信された後に Devise でのサインアップを許可するには?

新しいユーザーにDeviseInvitable(たとえばeagle@gmail.comUserに) 招待状を送信すると、フィールドemail == eagle@gmail.comを持つテーブルに新しいレコードが作成されます。

後で、新しいユーザーとしてサインアップして電子メールeagle@gmail.comを指定しようとすると、次のエラーが表示されますEmail has already been taken

====

私はマルチテナント Web アプリに取り組んでおり、サインアップとは、ユーザーのグループが作業する新しいコンテナーの作成を意味します。グループの管理者は、新しいメンバーを招待できます。ただし、ユーザーは既存のグループへの招待を受け入れたくない場合があり、代わりに自分のグループを作成することにします。しかし、現在、彼のメールアドレスはすでにDBに登録されているため、サインアップできません...

eagle@gmail.comがサインアップする方法はありますか? (招待を拒否したり、メールアドレスを確認して DB からレコードを削除したりする可能性があります)?

0 投票する
1 に答える
556 参照

ruby-on-rails - 招待状の送信後にリダイレクト パスを変更するにはどうすればよいですか?

私はDevise Invitableを使用しています.SOでいくつかの回答を見つけました(ここに1つがあります).after_invite_path_for(resource)Users::InvitationsController < DeviseController

私はそれを試しましたが、まだうまくいきません。

これは私のコントローラーです:

ブロック内の のredirect_to root_path直後に追加しようとすると、リダイレクトが既に呼び出されているというエラーがスローされます。superelse

ここで作成アクションのソースを確認すると、リダイレクトが表示されるため、それは本当だと思います。

これはサーバーログです:

どこにもリダイレクトしないことに注意してください。

0 投票する
1 に答える
663 参照

ruby-on-rails - Devise_invitable でプロジェクトにユーザーを招待するには?

ユーザーを特定のプロジェクト/ワークスペース/チームに招待できるアプリを作成しています。ただし、デフォルトでは、特定のプロジェクトではなく、ユーザーをアプリに招待できます。この質問は非常に似ているようです特定のプロジェクトにユーザーを招待するために devise_invitable ルートをネストする方法この場合、invitations_controller をオーバーライドする方法を知っている人はいますか?

0 投票する
0 に答える
340 参照

ruby-on-rails - 招待が受け入れられた後、Devise Invitable が 401 UnAuthorized エラーをスローする

Rails 4.1.14、Ruby 2.1.6、Devise 3.2.4、および Devise_invitable 1.3.6 を使用しています。

私が抱えている問題は、招待した新しいユーザーが、受信した電子メールの招待を受け入れるリンクを押すと、リダイレクト ループでスタックすることです。理由がわかりません。

これらは操作全体のサーバー ログです (ログの最初の部分の大部分は、以下で省略したロジックに対応していることに注意してください。ただし、何か興味深いことがわかる場合に備えて残しておきます)。

これは私のUsers::InvitationsController#Edit

次に、招待状の送信後または送信前に何か特別なことをしたい場合に、ドキュメントでaccept_resource提案されているような方法を指定しました。

これが起こっているに違いない理由の一部は、ユーザーが受け入れた後にユーザーのアカウントが確認されなかったというループに陥っているためだと思いました....したがって、そのオーバーライド。

これが私のものUser.rbです:

何が原因でしょうか?

0 投票する
1 に答える
195 参照

ruby-on-rails - devise invitable Rails gemでcounter_cache/invitations_countを機能させるには?

Railsアプリでdevise invitableを使用しています。Invitations_count 列 (送信された招待状のカウンター キャッシュであるはず) は nil のままです。

初期化子/devise.rb

以上がジェムの到着方法です。カウンターを有効にするために、最後の行のコメントを外しました。

devise invitable Github issues ページを読み、SO と Google を検索し、アプリのさまざまな場所をいじってみました。gem の残りの部分は正常に機能し、招待状を送信していますが、カウンターは送信していません。

修正方法についてのアイデアはありますか? ありがとうございました!

0 投票する
1 に答える
54 参照

ruby-on-rails - デバイスがルートに従わないのはなぜですか?

注:いつものように、私はここで質問するためにそれを明確にする過程で私の問題を解決しました! 解決策は終わりです。

Rails がデバイス招待 URL リクエストを適切な場所に送信していません。

私が行くとき:

http://localhost:3000/users/invitation/accept?invitation_token=SOME_TOKEN

ブラウザはルートにリダイレクトするだけです。

routes.rb は、次のようなカスタム デバイス コントローラーにリクエストを送信しています。

devise.rb では、スコープ ビューが有効になっています。

レーキルートは私に与えます:

users/invitations_controller.rb は次のようになります。

では、なぜルートにリダイレクトされるのでしょうか。

カスタム編集メソッドに解決するようにしましたが、招待コントローラーを削除し、devise_for名前を変更して (「受け入れ」として)、明示的にルートにすることによってのみ:

これがキャッシュの問題である場合は、Chrome の DNS キャッシュを消去し、Rails サーバーと redis-server を再起動して、rake tmp:cache:clear を実行しました。

更新: 解決策

問題は、私がすでに他のアカウントを使用して自分のサイトにサインインしていたため、devise_invitable の招待を受け入れようとすると、devise がルートにリダイレクトしてしまうことでした!

ログアウトして再度 URL を試してみたところ、うまくいきました。

0 投票する
1 に答える
126 参照

ruby-on-rails - Devise Invitableを使用した単一テーブルの継承は、子を使用しないURLを受け入れます

私は次の構造を持っています

管理者を招待すると、招待を受け入れるためのリンクが に移動します。/users/invitation/accept必要なのは/administrators/invitation/acceptです。

管理者とデバイス用にオーバーライドされたビューがあるので、app/views/administrators/invitable/edit.html.erb. ユーザーに関係のないフィールドをこのページに追加しようとしています。

メール送信プロセス全体を上書きすることなく、それを上書きする方法はありますか?