Rails Model User Password Hex
ユーザー登録とか、パスワードとか、あの辺ですが、パスワードをハッシュ化する処理をコントローラーに埋め込むと、後々の修正が大変面倒になります。
なので、適当にモデルに持たせたいのですが、モデルでハッシュ化するとどこでハッシュ化しようという問題があります。
そんな時は before_save とかのフィルタを使いましょう
class User include Mongoid::Document field :password, type: String before_save :crypting_password private def crypting_password if self.password_changed? self.password = self.password.crypt("salt") end true end end
Mongoidを使う時の実装ですが、ActiveRecordでも似たように実装できると思います。