問題タブ [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.
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ファイルです
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 エラーが発生します。単にテストするために、これらすべてをバラバラにしたくありません。この方法。
私はこれを何時間もいじろうとしましたが、途方に暮れています-どんな助けも大歓迎です。他に見たいコードがあれば教えてください。
ruby-on-rails - ActiveAdmin Gem で、Admin モデルに招待回数を追加する方法は?
私のプロジェクトでは、devise invitableと統合されたactiveadmin gemを実装しました。したがって、私のアプリケーションでは、管理者が電子メールで顧客を招待できます。招待中に、次のエラーが表示されます。
ruby-on-rails - Devise_invitable 招待リンクのカスタマイズ
メールでユーザーを招待するためにdevise_invitableを使用しています。ユーザーがリンクをたどると、望ましくないパスワード設定ページにリダイレクトされます。
カスタマイズしたページへのリンクを含む招待状を送信するには?
コントローラーをオーバーライドしてみました
生成を介して追加されたビュー。[招待ページを編集できます] devise/mailer/invitation_instructions.
私のコントローラーを含めるようにdevise.rbを変更しました。しかし、私のコントローラーは使用されておらず、デバイスのコントローラーを使用しています。
これをカスタマイズしたリンクにしたい。フローとオーバーライド コントローラを変更するにはどうすればよいですか?
ruby-on-rails - 実験装置の誘い
アプリでdevise invitableを使用しています。いくつかのカスタム動作のために、devise の招待可能な招待コントローラーを上書きしました。このためのコントローラーテストを作成しようとすると、次のエラーが発生します。
をしているときに起こりget :new
ます。
ルートは、セットアップの指示に従ってセットアップされます。
コントローラーは /app/controllers/users/invitations_controller.rb の下にあり、名前Users::InvitationsController
はテスト /tests/controllers/users/invitations_controller.rb と同じファイル内で正しく配置されていますUsers::InvitationsControllerTest
これはテストです:
これはアクションです:
助けてくれてありがとう。