- システム開発
- 2016/07/03
Railsのmodelを徹底解説!知っておくべき3つの知識も紹介
Ruby on Rails(以下Rails)のmodel(モデル)についてRails初心者の人でも理解できるように解説していきます。
Railsは、MVCアーキテクチャに基づいて3つの部分で構成されています。「MVC」の「M」がmodelです。
フレームワークであるRailsを使ってWEBアプリケーションなどを開発する時には、必ずmodelを使用することになるでしょう。では、Railsのmodelとはどのようなものなのでしょうか?
本記事では、Railsのmodelの役割をまず解説します。
そして、modelの作成方法・modelの命名規約・modelの削除方法の3つについて具体的なソースコードを用いて解説してます。
本記事を読み終えた頃には、Rails初心者でもmodelについての理解ができていることでしょう。
ぜひ最後までお読みください。
Rails modelとは?
まずはRailsのmodelとは何かについて解説します。
一言で言うと、Railsのmodelとは、「データベースとのやり取りを行うクラスのこと」です。
では、データベースとは何なのでしょうか?データベースとは、何らかのデータ(人物の情報や商品の情報など)を集め、データの操作や検索を行えるようにしたものです。
データベースはテーブルの集合でできています。テーブルとは、エクセルの表のように情報を縦横に並べたものです。(テーブルの列をカラム、行をレコードといいます)
以下の画像が、データベースのイメージです。
Railsのmodelは、データベースのテーブルに対応するRubyのクラスです。モデルクラスのインスタンスは、1つの行(レコード)を表すオブジェクトになり、テーブルの列(カラム)に相当する属性を持ちます。
例えば、商品情報のモデルクラスがあると、そのインスタンス(オブジェクト)は「商品名」や「価格」などの属性を持ちます。
Rails modelの役割が理解できましたか?Rails modelを使うと、直感的で記述しやすいコードでデータベースを扱うことができます。
Rails modelの作成方法
ここでは、Railsでmodelを作成する方法を解説します。
本記事では、例として、サッカーチームの会員情報をmembersテーブルで管理することにし、そのmembersテーブルに対応するMemberモデルを作成してみます。
※Railsではmodelに対応するデータベースのテーブル名はmembersのように複数形になります。
Railsでmodelを作成するには、ターミナルから「rails generate」コマンドを実行します。
※「rails generate」は「rails g」と省略可能です。以下からは「rails g」を使います。
「rails g model モデル名」でmodelを作成できます。
【Rails modelの作成コマンド】
rails g model モデル名
【Memberモデルを作成する場合】
rails g model Member
上記のコマンドを実行すると、app/modelsフォルダに、「モデル名.rb」というファイルが作成されます。
Memberモデルでは、「member.rb」となります。modelに関するソースコードはこのファイルに記述します。
Rails modelの命名規約
ここで、モデル名の命名の仕方に注意する必要があります。
先ほど述べた通り、Railsでは、modelに対応するデータベースのテーブル名はmembersのように複数形になります。
しかし、modelのクラス名は、Memberのように頭が大文字の単数形になります。
また、modelを作成する時は、「rails g model member」のようにmemberを小文字始めても大丈夫です。
また、例えばmember_imageと指定してもMemberImageとしても、MemberImageモデル(テーブル名はmember_images)が作成されます。
ただし、membersのように複数形にすることは厳禁です。Membersモデルが作成されてしまいます。modelは必ず単数形で作成しましょう。
【Rails modelの命名規約】
rails g model Member ◯
rails g model member ◯
rails g model Members ×
rails g model members ×
modelは必ず単数形で作成する
modelに関する命名規約は非常に重要なので、必ず覚えておきましょう。
Rails modelの削除方法
名前などを間違えてmodelを作成してしまった場合、そのmodelを削除して新たなmodelを作り直したいですよね?
そんな時に必要となる、Rails modelの削除方法を紹介します。
Railsでmodelを削除するには、ターミナルから「rails destroy model 削除したいモデル名」コマンドを実行してmodelを削除できます。
【Rails modelの削除コマンド】
rails destroy model 削除したいモデル名
【Memberモデルを削除する場合】
rails destroy model Member
これでmodelを削除することができます。間違ってmodelを作成してしまった時はこのコマンドでmodelを削除しましょう。
いかがでしたか?Rails modelが理解できましたか?
Railsで開発をする時は必ずと言っていいほどmodelを使ってデータベースとのやり取りをすることになります。Rails modelの使い方を忘れた時は、またこの記事でmodelの使い方を思い出してください。
エンジニアに役立つ目的別講座
Pythonの基本~応用をマスター
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。
Webサイトのコーディングができるように
ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!
HTML, CSS, Bootstrap, JavaScript, MySQL, Ruby, Ruby on Rails, AWS Cloud9, Git, GitHubを用いたWebアプリケーション開発の方法を総合的に学べます。
AWSを基礎から学ぶ
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!
ITプロジェクトの資料作成はお任せ!
手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート
ITプロジェクトの資料作成を学べる人気講座。フェーズ毎に、どんな資料を作ればいいのか悩んでいる人におすすめ。
関連記事

Railsのfindメソッドがすぐ分かる!find_byとの違いも即理解
Ruby on Rails(以下Rails)のfindメソッドについて、Rails初心者…

Rails controllerを徹底解説!知っておくべき3つの知識も紹介
Ruby on Rails(以下Rails)のcontroller(コントローラ)についてR…

Rails scaffoldを初心者向けに解説!実際にアプリを作ってみよう!
Ruby on Railsの基本的な概要とメリット、scaffoldの使い方を…

link_toはRailsの基本!これであなたも必ずlink_toが書ける!
Ruby on RailsでWEBアプリケーションなどを開発していると、必…
最新情報・キャンペーン情報発信中