tjinjin's blog

インフラ要素多めの個人メモ

Railstutorial学習記録7

GW終わりましたけど、6章やっていきます。

5章でユーザページのスタブを作っていたので、それを実装するみたいです。6~8章?にかけてやるみたいで、ひとつの山場かもしれないですね。時間あるので、ブログにしっかり残しておきたいと。

学んだこと

  • rakeタスクでDBが作成できる。これはすごい楽。昔はDDL作ってそれを検証して、投入とかしていた。rollbackも簡単なのがいいですね。db/scheme.rb見るとrubyからDBを作成したときに使った情報が見れるみたいです。

  • user.newでユーザを作成してもDBにはcommitされていない。user.saveすることでcommitされる。作成と更新を同時にやるときはuser.create。削除はuser.destroy

  • select文的なことはfindメソッドで行う。作ったモデルに応じてfind_by_XXというメソッド作成されるので、それも使える。Rails4からはfind_byメソッドを使って引数に条件にしたいカラムを渡す方がいいみたいです。

  • dataの更新はオブジェクトに対し直接データを入れるか、update_attributesを使うか。全カラムの更新をしない場合はupdate_attributeで。

  • データのバリデーションの話。入力チェックとも。

  • Userモデルにpresence属性を追加して属性が空文字だとuser.save時にfalseになる。valid?メソッドでもfalseに。エラー詳細見たいときは.errors.full_messagesで確認できる。

  • rspecの構文は省略されているので、実際は何をやってるのかしっかり考えておいた方がよさそう。

  • 正規表現のサイト

Rubular: a Ruby regular expression editor and tester

  • DBへの書き込みのロックの話。コールバックとか

  • セキュアなパスワードの話。Userテーブルにカラム追加する際に、別のDDLを作っているような形になってるが、Railsだとそういうもんなのかな。ここは要復習しておきたい。Railsが機能を用意してくれているので、そのレールに乗れば基本的によさそう。

  • 演習はまたあとで…