問題タブ [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 に答える
752 参照

ruby-on-rails-3 - Devise Invitable テストの default_url_options

メソッドをテストしています User.invite!(:email => "new@example.com")

Devise Invitableのrspecを使用していますが、次のエラーが発生します。

ActionView::Template::Error: リンク先のホストがありません! :host パラメータを指定するか、default_url_options[:host] を設定するか、:only_path を true に設定してください

config/test.rbにこの行を既に追加しました

この問題を解決するにはどうすればよいですか?

私のレールのバージョン: 3.2.14

編集 これは私のtest.rbファイルです

0 投票する
2 に答える
219 参照

ruby-on-rails - オプションが true に評価されない限り、Rails の検証は引き続き実行されます

アプリで使用devise_invitableして、ユーザーが招待状を送信できるようにします。ユーザーが招待されたにもかかわらず、招待を無視し、後でアプリに戻って自分でサインアップするという悪いケースに気付きました。devise_invitable招待用に提供された電子メール アドレスを使用して新しい を作成することで招待を処理するためuser、電子メール フィールドで一意性を検証すると、Rails が不平を言い、電子メール アドレスが既に使用されていることをユーザーに伝えます。

このケースを処理するためのロジックを書き込もうとしています。これを検出して以前に作成したユーザーを破棄し、新しいユーザーを作成できるようにするか、ユーザーが招待されたことを検出して別のフローを実行するかの 2 つのパスが表示されます。可能であれば引き続き招待状を利用したいので、2 番目のオプションを実装することにしました。

私の限られた経験では、私が書いたものが機能するかどうか疑問に思っていますが、電子メールのRails検証がトリガーされるため、実際に完全にテストすることはできません. Devise の:validatableモジュールが非アクティブであることを確認しました。ユーザーが招待されたかどうかを検出するメソッドを作成しました。その場合、一意性の検証をスキップする必要があります。

FWIW、私はもともと if/else を分割するのではなく、これを省略形で書いていましたが、バグ/失敗を見つけるために非常に明確にしたかったのです。

フォームが検証に合格すると、createアクションがユーザーの招待ステータスについて何らかの検出を行い、招待された場合は、accept_user_invitation_path. 繰り返しますが、検証を回避できないため、これを実際にテストすることはまだできていません。

.save(validate: false)必死の努力で、そこに短絡を試みるためにも追加したことがわかりますが、そこまで到達していません。

単に残りのロジック/フローをテストするために、電子メールの検証を完全にコメントアウトすると、電子メール アドレスのインデックスが原因で、一意性について不平を言う PG エラーが発生します。単にテストするために、これらすべてをバラバラにしたくありません。この方法。

私はこれを何時間もいじろうとしましたが、途方に暮れています-どんな助けも大歓迎です。他に見たいコードがあれば教えてください。

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

ruby-on-rails - ActiveAdmin Gem で、Admin モデルに招待回数を追加する方法は?

私のプロジェクトでは、devise invitableと統合された したがって、私のアプリケーションでは、管理者が電子メールで顧客を招待できます。招待中に、次のエラーが表示されます。

0 投票する
2 に答える
988 参照

ruby-on-rails - Devise_invitable 招待リンクのカスタマイズ

メールでユーザーを招待するためにdevise_invitableを使用しています。ユーザーがリンクをたどると、望ましくないパスワード設定ページにリダイレクトされます。

カスタマイズしたページへのリンクを含む招待状を送信するには?

コントローラーをオーバーライドしてみました

生成を介して追加されたビュー。[招待ページを編集できます] devise/mailer/invitation_instructions.

私のコントローラーを含めるようにdevise.rbを変更しました。しかし、私のコントローラーは使用されておらず、デバイスのコントローラーを使用しています。

これをカスタマイズしたリンクにしたい。フローとオーバーライド コントローラを変更するにはどうすればよいですか?

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

ruby-on-rails - 実験装置の誘い

アプリでdevise invitableを使用しています。いくつかのカスタム動作のために、devise の招待可能な招待コントローラーを上書きしました。このためのコントローラーテストを作成しようとすると、次のエラーが発生します。

をしているときに起こりget :newます。

ルートは、セットアップの指示に従ってセットアップされます。

コントローラーは /app/controllers/users/invitations_controller.rb の下にあり、名前Users::InvitationsControllerはテスト /tests/controllers/users/invitations_controller.rb と同じファイル内で正しく配置されていますUsers::InvitationsControllerTest

これはテストです:

これはアクションです:

助けてくれてありがとう。