パスワードをハッシュ化するとチェックができない…

新規作成、更新、削除などの処理を行う場合にその処理の前後や検証処理の前後で処理を行うことができる機能がRailsにはあります。コールバックと言われる機能ですが、イメージとしてはデータベースのトリガーに似ています。

今回はパスワードからハッシュ値を取得したいけれども、平文にはチェックを行いたいところで悩んだ結果たどり着きました。saveメソッド実行時はエンティティに平文のパスワードを設定しておき、検証が終了後にパスワードをハッシュ値に書き換えることで無事思った通りの処理ができました。

.NETの場合、画面コントロール内でValidate関連のイベントを使用しますが概念的には同一です。違いはコントロールがイベントを制御するかモデルが制御するかですね。

それにしても、このコールバックはかなり柔軟に作成できますね。また、いつものRuby on Rails3 アプリケーションプログラミング を参考にしているのですが、非常に柔軟な実装が可能です。とはいうものの、柔軟な実装が可能ですがデフォルト状態でも十分使用に耐えると思います。Railsはとても便利ですねぇ。