Ruby on Railsの勉強_4
※自分用の勉強メモです。所々間違った解釈をしている箇所があると思います。
今日は"6章をやる"
内容は5章の最後に触れたUserのデータモデルを実際に作成し、ユーザーのデータの管理の仕方を勉強する。Twitterっぽいマイクロブログを作るのが本書の目的だから残りの12章までUser data modelに関わったことをやる。
7〜10章の内容は以下の通り:
- 7章: ユーザーの作成とプロフィール画面を実装
- 8章: ログイン・ログアウトの機能の実装
- 9章: サイトを不正アクセスから守る方法を学ぶ
- 10章: メールアドレスを利用したアカウントアクティベーションの実装
なかなか面白そうだ。早速とりかかろう
感想・メモ
- 認証システムについて: ClearanceやAuthlogic, Devise, CanCanといったウェブフレームワークが提供してくれる認証システムは存在する。しかし、一般的に認証システムは細かな設定をする必要があるため、既存のものを自分の目的の用途にカスタマイズする手間を考えるとスクラッチから作ったほうが効率がいい(らしい)。
- それに加えて、提供されてるものは基本ブラックボックスだから、自分が使うものは中身が分かってたほうがいいよねって意見もある。ただそこまで中身を気にするんだったら、Railsなんてブラックボックスの塊みたいなものそもそも使わないよなァ。
- あと、最近のRailsでは認証システムが作りやすくなってるらしい。(それもブラックボックスやん)
- MVCのM: Modelがウェブアプリで利用するデータの管理を行う。
- Active Record: RailsはActive Recordというライブラリを使ってデータベースをいじる。それらに含まれているメソッドを使ってデータベースを操作するため、リレーショナル・データベースで使われるSQLを勉強する必要がない。migration機能のおかげでデータの定義をRubyで書ける。
- 開発ではSQLite、Herokuへデプロイする際はPostgreSQLを利用
- MVCのMとC: Controller名は複数形(Users)であるのに対して、Model名は単数形(User)だったりする。(慣習)
- "migrating up": Migrationの実行のこと。SQLiteデータベースが作成され、DB Browser for SQLiteで内容が閲覧できる。
- Userオブジェクトの操作: インタプリタ終了時にデータベースの操作を全て破棄できるrails console --sandboxを使う。 (Model名).new(メモリ上にオブジェクトを作成)と.save(DB上に保存)を利用してオブジェクトをDB上に作成する方法と .createの1コマンドで作成する方法がある。 オブジェクトを破棄したい場合は .destroy。
- .find(1), .find_by(name: "")などのメソッドからオブジェクトを検索することができる。
- userの情報を更新した時は.saveをする。
6.1.5 Updating user objectsまでやった。2時間やってまだ章の1/3しか終わっていない事実。大学生は暇だね。最高だね。