コンパイラかく語りき

import { Fun } from 'programming'

RubyonRailsチュートリアル6章

どうも!chuckです。ついに6章に突入しました。もう半分終わっちゃったんですね(しんみり)6章からは本格的なRailsの勉強が始まり、Webアプリケーションに必須な機能をつけていきます。

 

今後のおしながき

6章、ユーザーのデータモデルの作成。データを保存する手段の確保。

7章、ユーザーがサイトに登録できるようにし、個人プロフィールページを作成する。

8章、サインイン、サインアウトを可能にする。

9章、不正なアクセスを拒否する方法を学ぶ。

 

6章 ユーザーのモデルを作成する

まずやることはビューの作成ではなく、データを保存しておくためのデータ構造の作成。

Railsではデフォルトのデータ構造をモデルと呼ぶ。そして、モデルを永続化させるためにはデータベースを利用し、データベースとのやりとりを行うのがActiveRecordである。

でた!ActiveRecord!勉強しておいてよかったw

chuckwebtips.hatenablog.com

 

さらにマイグレーションという機能により、SQL文を使わずしてデータベースに干渉できる。なぜならマイグレーションの中身はデータベースの変更を行うchangeメソッドの集まりだからである。

 

モデルを作成する

f:id:chuck0523:20150620085206p:plain

 generate controllerでコントローラを作成できるばかりじゃなく、generate modelも可能。

ちなみに前者では引数にアクション名を取り、後者では引数にデータの列を取る。

 

MigrationUp

マイグレーションは以下のコマンドで実行する。これをマイグレーションの適用(MigrationUp)という。

f:id:chuck0523:20150620090130p:plain

ちなみにscaffoldも似たような文法で実行する。

 

MigrationDown

Railsではマイグレーションは可逆的である。つまり以下のコマンドで取り消すことができる。

f:id:chuck0523:20150620090612p:plain

これは内部的にDropTableを実行してくれるおかげ、とのこと。

 

 

データの検証

通常のSQL同様、not null, uniqueなどの制約をつけることができる。

ActiveRecordでは存在性(presence), 長さ(length), フォーマット(format), 一意性(uniqueness)と呼ばれる。また最終検証としての確認(confirmation)も存在する。

 

まず、テスト環境用のデータベースを作成する。

f:id:chuck0523:20150620092905p:plain

 

さらっと怖いことが書かれている。

f:id:chuck0523:20150620093224p:plain

 

存在性の確認

f:id:chuck0523:20150620094455p:plain

ここでvalidatesはメソッド。:name, と { presence: true}の2つを引数にとっている。

 

長さの検証

f:id:chuck0523:20150620095215p:plain

validatesメソッドの第二引数の中にlengthを追加する。この場合、maximum:50なので50文字以内という制限を課している。

 

フォーマット

f:id:chuck0523:20150620100004p:plain

lengthと同じく、formatをハッシュの中に含める。

 

 

そしてパスワード認証へ

うーむ、、このあたりはけっこう曖昧感がある。

要はhas_secure_passwordをuser.rbに含めればいいとのこと。

またあとで読みなおそう。

 

 

というわけでひとまず6章終了。