Ruby on Rails MVCとはマジでビューっと超見える
すいません。ワクチン2回目打ったせいなのかタイトルのセンスがゼロです。
今回はRailsにおけるMVCですが、WEBアプリケーションを作成していて一番できた感があるのはデータをViewに表示した時ではないでしょうか?
そこでViewにいかにして表示させるのか?についてアウトプットしたいと思います。
MVCとはmodelのM、ViewのV、controllerのCから成り立ちますが、WEBアプリケーションの重要な要素としてデータベースに保存できる。それを取り出し表示する事ができることです。
今回はビューっと言ってもいちばん基本の基本indexに表示させる方法について書いてみます。
基本的な方法としては
1.モデル名とコントローラー名とビューのディレクトリ名を同じする。
2.ビューのindexに表示したい場合コントローラーにdef index ~ endのメソッドを記述
3.作成したメソッドの中にインスタンスを生成するクラスをモデル名で記述する
4.クラスをインスタンス変数に代入する記述をする事でビューにデータを送る事ができる。
5.ビュー側にはデータを1つ1つ表示する為にeachメソッドを使う
6.インスタンス変数名.eachメソッドで順番通りにビューにデータを表示する事ができます。
ざっくり、一番簡単な方法で言うとこんなるのではないかと思います。
補足を加えると3の所でクラス名をモデル名にする事でモデルにあるデータベースのテーブルからデータを呼び出す事ができる。テーブルにはデータを見分ける為のカラム名ついていてビューのeachメソッドを記述する際に「ブロック変数.カラム名」と記述する事でカラムを指定したデータがデーターベースから取り出され表示されるという所までが表示されるまでの流れかと思います。
ここで疑問になるのはなぜテーブルとは何か?
テーブルとは一般的に言えばデータを小分けした際の「一覧表自体」のようなもの、居酒屋に行った際のあるメニュー自体がテーブルと言われたいて「飲みのも」「おつまみ」などがカラム名。スーパードライや黒ラベルがデータ。もつ煮込みやネギマがデータです。
テーブルだけ必要であればモデルはいらないのではないか?っと思ってしまうのですが、モデルがある事で「スーパードライ」を「スーパーカッコイイキレニガ味ビール」なんて長い名前をつけるのを禁止にする設定ができたり、違うメニューとの関連性を記述する事で「Aが焼いた」「焼き鳥」と「Bさんが焼いた」「焼き鳥」というように関連つけたデータにビューに表示させる事ができます。
ここで疑問になるのがデータを個別にAのカラムのA-2だけ表示させたいとかはないのか?
あるにはあるけどないにはないです、見る側からすればデーター内部を見てこのデーターが欲しいとはならず、まずデータを選ぶ為の一覧が見たい、見せたいのが江戸の花。江戸の粋ってもんで、まずは主にindexに一覧をゴロージローを見ていただき、その中から選んだ内容の詳細ををコントローラーのshowメソッドで小細をする事で希望のデータをみる事ができますが
それはまた別のお話。