タグ

ブックマーク / washiiku.hatenablog.com (2)

  • Deviseでパスワード変更時にログアウトしない方法 - ワシはワシが育てる

    Railsのデファクト認証システムの一つであるDeviseにおいて、デフォルトではログイン中にパスワードを変更するとサインアウトされてしまいます。 原因としては保持しているセッション情報と、更新されたデータベースとの整合が取れずにサインアウトされてしまうのだと思います。 そこでログアウトしない方法はないかと調べた所、サインインする際に「bypass: true」という属性を付与するといいらしい。ということで早速やってみると望み通りの挙動になりました。 といってもbypassオプションの動作を知らずに使うのも怖いので、Githubで調べたらメカニズムは単純でした。 当該Githubページはこちら def sign_in(resource_or_scope, *args) options = args.extract_options! scope = Devise::Mapping.find_

    Deviseでパスワード変更時にログアウトしない方法 - ワシはワシが育てる
  • Rubyでマルチスレッド・マルチプロセスのプログラムを書くならParallelが便利 - ワシはワシが育てる

    Rubyでは比較的簡単にマルチプロセス、マルチスレッドのプログラミングができますが、それでもやや煩雑な書き方になってしまいます。 それらの処理を簡単に書くためのライブラリとしてparallelがオススメです。 ループの前に少し構文を加えるだけで簡単にマルチな処理が実行できます。 # 普通に書くとこんな感じ [1, 2, 3, 4, 5, 6].each do |i| p i end # Parallelを使って処理 Parallel.each([1, 2, 3, 4, 5, 6], in_processes: 6) do |i| p i end このように先頭にParallelを付けるだけです。 またActiveRecordを使用する際は、スレッド・プロセスが生成される度にデータベース接続を行うとデータベース側でエラーとなってしまうので、Parallelに限らずマルチでの処理では以下のよう

    Rubyでマルチスレッド・マルチプロセスのプログラムを書くならParallelが便利 - ワシはワシが育てる
  • 1