Posted at

Rails チュートリアル メモ 第9章

More than 1 year has passed since last update.


メモ


  • 実装の方針は、ID/PW による認証とほぼ同じ


    • フォームで ID/PW を送信する代わりに、Cookie でID/トークン を送信する

    • PW 同様、トークンもそのまま DB には入れず、ハッシュ化して保存する





  • Active Record が強力すぎて忘れがちだが、Model も単なるクラスなので、attr_accessor でインスタンス変数のゲッタ/セッタが定義できる

  • これで、password のように remember_token を User インスタンス上で扱えるようにする

  • ようするに、チュートリアル内で「仮想的な属性」と呼ばれていたものは、単に「DB 上に存在しない」というだけで、ruby 的には紛れもないメンバー変数の1つ



  • DB には xxx_digest というカラムはあるが、xxx というカラムはない


    • なので、保存したユーザーを検索してきて xxx を調べても、入っているのは nil である



  • しかし、DB に xxx_digest を保存するためには、まず xxx がインスタンスに設定されている必要がある


    • なので、DB に保存する瞬間だけは、xxx を調べると nil でないものが入っている





  • cookies.permanent.signed[:user_id]

  • id = cookies.signed[:user_id]



  • current_user メソッドが複雑になって(責任範囲が広がって)つらくなってきた