Railsチュートリアル 第2章 メモ書き
最初に
自分がメモにまとめていたものを投稿していきます。
見栄えとか全く気にしてません。
後でもっとわかりやすくしたものに変える可能性もありますが、
とりあえず上げていきます。
本題
○scaffoldによるコード作成
○MVCモデル
○REST
○継承
scaffold :大量の機能を自動生成
リソース:データモデル(userモデルとmicropostモデル)+webインターフェイス
Rails g scaffold userでusersリソースを作成
→index(ユーザー一覧),show(個別のユーザーページ),new(新規ユーザー),edit(ユーザー編集)などのビュー、コントローラ、アクションが作成される
※欠点:レイアウトもスタイルもない、ユーザーパスワードがない、画像を置けない、ログイン機構なし、セキュリティなし、フォローワー・フォロー中機能なし、まともなテストなし、中身がブラックボックス(理解が困難)
Mvcの挙動:
1)ブラウザ(/users)→railsサーバー
2)ルーターによってusersコントローラのアクションへ
3)アクション実行、usersモデルへ
4)usersモデル、データベースからデータを操作
5)usersモデルからデータをコントローラに
6)usersコントローラはデータをインスタンス変数に保存、ビューへ
7)ビューが開き、erbを実行、HTMLをレンダリング
8)コントローラはビューで生成されたHTML をブラウザに返す
HTTPリクエスト(RESTful):
get(ビューの表示:index,show,new,edit),
post(データベースの操作:create),
patch(データ更新:update),
delete(データ消去:destroy)
REST:
CRUD(Create/Read/Update/Delete)とリクエストの各メソッドを対応させた、ネットワークやアプリケーションを構築するためのスタイル。
バリデーション:
データベースに制限を加える方法。モデルに書く。
クラスの継承:
クラスは別のクラスを継承することで、継承したクラス中の定義やアクションをそのまま使用できる。
User(Micropost) > ApplicationRecord > ActiveRecord::Base
※コントローラでも同様