とりあえずnull

プログラミングの勉強日記

Railsでいうモデルとは

こんな人には参考になるかも

・モデルってそもそもなんなのさ!って思っている人

・モデルってなにやっとんねん。ActiveRecordってなんやねんって感じの方

 

 

まず最初に謝っておきたいことがあります。この記事に書いてあることは「モデルのすべて」ではありません。モデルって一体なんなの?って言う根幹を明確にしただけのものです。

 

モデルがやっていること

大きく分けて2つあります。

まず1つ目がデータベースから指定したレコードやフィールドをひっぱってくること。レコードっていうのはテーブルで言う横一列ですね。フィールドってのは四角1コマのことです。たとえばユーザーテーブルがあったとして、「大阪出身で、かつ年齢が20歳以上の男性」っていう条件をつけてレコードをひっぱってくる。そうしてひっぱってきた情報をつっこむ箱みたいなのがモデル。この中身はどんな作りで管理されているのかわからないんだけれども、とりあえず「大阪出身で、かつ年齢が20歳以上の男性ユーザー」の情報が入っているわけです。このひっぱってきた情報を更新したり、削除したりするためにモデルという箱はコントローラーによっていじくりまわされる運命にあるわけです。

次に2つ目。新規ユーザー登録画面みたいなのがあったとしましょう。すなわちViewですね。Viewから「このユーザー情報登録してくれー」って依頼がくるとコントローラーさんがすかさず「あいわかった」と返答し、モデル(箱)につっこんできます。モデルはここで「この情報って本当にデータベースに入れていいものなのか?怪しいコードとかまじってない?形式あたってる?」といったふうに検査をします。みなさんも飛行機に乗る前に液体や金属がないかチェックされるかと思います。あの感覚です。情報に以上がなければモデルさんはデータベースに新しい情報を追加するわけですね。これが2つ目のモデルの役割。つまり情報を査定し、データベースに突っ込むってわけですね。

 

データベースをひっぱってくるのもつっこむのも全部ActiveRecordさんのおかげ

そもそもデータベースを扱う処理を行なうにはSQL文というものを書いて処理を行なわなければならないのですが、RailsにはActiveRecordというツールが標準で付いています。これはSQL文をRubyの文法でできるようにしたもので、裏側でやっている処理は『select* from テーブル名」のようなガッチガチなSQLが叩かれているわけでございます。つまりSQL文を叩くのがめんどくさい、そのままRubyの言語で出来るようにしちゃおうぜって理由で開発されたツールとのこと。素晴らしい。

 

でも一度ちゃんとモデルとはなんぞやって理解したいよね

そんな方にはぜひともまずはデータベースについて勉強することをオススメします。そうすることでテーブルの操作の仕方だったりデータベースの構造がわかってくるかと思います。その次にActiveRecordについて勉強するとなおよし。そして最後にRailsのモデルで活用していくわけですね。

 

最初からRailsやってしまうとそもそもモデルってのは「@user = Users.new」でできるよーとかとりあえずこう書けばデータベースに保存されるよーみたいなことしかわからなくて、途中で「うわぁーーーーわからねぇdjcんvjんqhpgんkまcj;fj:ん;dゔぁ」ってなってしまいます。ぼくはなりました。そんなフェーズにいるのであればぜひ基礎から忠実に構造を理解してRailsともっと仲良しになっていきませんか?いきましょう!