管理画面を開いているときに、サインインしているユーザーを確認したいと思います。
このような
devise を使用して、追跡可能な機能を追加しました
私の移住で
t.integer :sign_in_count, :default => 0
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
問題は、ユーザーがサインアウトして:current_sign_in_at
and:current_sign_in_ip
が nil に設定されていない場合です。
これを自分の sessions_controller.rb に追加しました
def destroy
current_user.current_sign_in_at = nil
current_user.save
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(current_user))
set_flash_message :notice, :signed_out if signed_out
redirect_to root_url
end
current_sign_in_at
ユーザーがサインアウトすると が更新されるようになりました。
:timeoutable
次に、 mpduleを追加しました。セッションがタイムアウトすると、current_sign_in_at
not が更新されます。
このすべてのハッキングの後、私はうんざりし始めました: これを行うためのよりエレガントな方法を考案しませんか?