Sun~sun~Flower's

〜ITエンジニアとして日々前向きに生きていくノウハウブログ〜

MENU

【初心者向け】【Rails】モデルに備わっている「ORM」とは何なの?

f:id:mTakata:20200512191616j:plain
こんにちは。

当ページにアクセスしてくださり、ありがとうございます。

 

この記事は、プログラミング言語「Ruby」のフレームワーク「Rails」についての記事になります。

 

【目次】

問題

RailsのModel(モデル)に関する問題です。

 

Railsに用意されている「ORM」とはどのような機能か説明してください。

模範回答

ORMとは、オブジェクト・リレーショナル・マッピングの略称です。

 

直接SQL文を書く代わりに非常に短いコードで、データベースの読み書きを行える機能。

 

RailsではActiveRecordというモジュールで実装されています。

解説

本来、アプリケーションからデータベースのテーブルに保存されているレコードを抽出する際、SQL文が使われています。

 

例えば、次の食べ物テーブルがあるとします。(テーブル名は「foods」)

 

ID CATEGORY NAME PRICE
1 野菜 きゅうり 200
2 野菜 とまと 200
3 果物 もも 400
4 果物 めろん 1000

 

上記のテーブルから、CATEGORYが「野菜」であるレコードを抽出したいとします。

 

この際、 

```SQL文
select * from foods where CATEGORY = '野菜' ```

上記のようなコードを使って、欲しいレコードを抽出しているのです。

 

この時に使用したコードが「SQL文」というものです。(ちなみに、上記のSQL文を実行すると「きゅうり」と「とまと」が抽出されます。)

 

これがフレームワーク(Rails)を使用した場合ですと、次のコードで抽出できます。 

```SQL文
Foods.where(CATEGORY: '野菜') ```

パッと見ただけで分かると思いますが、SQL文より短いコードですみましたね。

❗️つまり、「楽」して欲しいレコードが抽出できます。

この仕組みが「ORM」に備わっているのです。

 

Railsで言いますと、モデルを作成した際に「ActiveRecord」というモジュールで用意されています。

まとめ

フレームワークを使って、テーブルからレコードを抽出する際、上記のSQL文がウラで発行されているだなとだけでもご理解頂ければと思います。

 

頑張ってください、プログラミングは楽しいです!!

 

以上となります、参考になれば幸いです。

最後まで読んでいただき、ありがとうございました。