0

ログインしている確認済みユーザーがいない場合にビューをロードする方法はありますか?デフォルトの動作では、「続行する前にアカウントを確認する必要があります」という通知が表示されます。

私は試した

  • current_user.confirmed_at.blankのデバイスチェックのsessions#createメソッドを無効にしますか?
  • after_singin_pathでcurrent_user.confirmed_at.blankをチェックしますか?代わりにビューをレンダリングします

私の目標は、通知の代わりにカスタムビューをレンダリングすることですが、正しい場所にフックすることはできません。これを達成する方法を誰が知っていますか?どうも!

4

2 に答える 2

1

これを解決する Ruby の方法が気に入っています。UsersController では、POST リクエストの後にユーザーが返され、Devise が提供する sign_in(Object) ヘルパーを使用してサインインすると思います。

また、タイムスタンプの代わりに確認済みのブール値を使用することをお勧めします。

Ruby の方法で if else ステートメントを使用して値を確認してみませんか。

user.confirmed ? sign_in(user) : render :partial => 'path/partial'

これがあなたを助けることを願っています

于 2012-10-19T10:00:30.957 に答える
1

デバイスの github からコードをコピーして、コントローラー/デバイスに配置するだけです。次に、必要なアクションまたはメソッドを変更します。

また、devise セッション コントローラーを拡張して、必要なアクションをオーバーライドすることもできます。

class Abc < Devise::SessionsController
 # this just reopens the class.
 # Remember classes are never "closed" in ruby!
end
于 2012-10-19T09:13:39.840 に答える