- English
- 日本語
Ruby on Railsを知っている人
「RailsのModelの作成方法が分からない」、「Modelの作成方法を詳しく知りたい」などお悩みを抱えている方はいないでしょうか?
このページでModelの作成方法を分かりやすく解説していきます。
最後まで是非読んでいただければと思います。
\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- TechAcademy
⇒ 無料体験レッスンに申し込む!
・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる
・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
・無料体験レッスン実施中!
Ruby on Railsを知っている人
目次
Modelとは?
通常、データを利用するWebアプリケーションを作成する場合、データベースというものを使用します。
そして、データベースにデータ保存したり、データベースからデータ検索するためにSQLという言語を使用します。
しかし、SQLという言語を駆使するには、SQLの使い方をしっかりと習得する必要があります。
SQLの使い方を習得せずにデータベースを利用するとデータ保存、検索時に誤った処理をしてしまう可能性があり、データ破損を招く原因となります。
そのため、データベースへの正確なアクセスが求められます。
このようにデータベース利用は手間がかかります。
そこで手間がかからないように設計されたのがMVCフレームワークのModelです。
通常SQLを使用してデータ検索をする場合、SQL文が複雑になりますが、Modelを使用してデータ検索を行う場合、簡単にデータ検索ができます。
Modelでは簡単にデータ検索できる部品が用意されており、これらの部品が自動的にデータ検索するという仕組みになっています。
データベースとは?
上記でデータを保存したり、検索したりするためにデータベースが必要なことが分かりましたが、そのデータベースにも種類があります。
通常、異なるデータベースを使用する場合、記述するコードは異なります。
しかし、Railsではどのデータベースを利用しても記述するコードはすべて同じです。
なぜ、どのデータベースを利用しても記述するコードがすべて同じになるのでしょうか。
データベースの情報はプログラムとは別の設定ファイルで管理されているからです。
この設定ファイルの内容を書き換えるだけでアクセスするデータベースの種類などを変更できるようになっています。
このような仕組みになっているので、Railsではどのデータベースを利用しても記述するコードに変わりはないのです。
Model作成方法
上記で「Modelとは?」、「データベースとは?」を解説していきましたが、次にModelを作成していきましょう。
「WebApp」というWebアプリケーションの作成を終えているという前提でお話を進めていきます。
Modelの作成はコマンドプロンプトで以下のようにコマンドを実行します。
rails g model モデル名 カラム名1:カラムの型1 カラム名2:カラムの型2
上記を見て分かるかと思いますが、Modelを作成する場合、「rails g model」の後に「モデル名」、「カラム名:カラムの型」を続けて記述していきます。
「カラム名:カラムの型」が複数ある場合、スペースを空けて記述していきます。
それでは「post」というModelを作成していきましょう。
コマンドプロンプトを開き、Webアプリケーション名「WebApp」というフォルダに移動しましょう。
「WebApp」へのフォルダ移動は「cd WebApp」で行うことができます。
上記のコマンドを実行すると以下のファイルが自動生成されます。
自動生成されたファイルがどのようなものなのかを見ていきましょう。
post.rb
postのモデルファイルとなっています。
post_text.rb
テスト用postのモデルファイルとなっています。
xxxx_create_posts.rb
xxxxはファイルが生成された日付を表す数字が記載されています。
これはマイグレーションというデータベース更新に関するファイルとなっています。
posts.yml
テストに関する情報を記述したファイルとなっています。
モデルファイルは「post.rb」のみで残りの3つのファイルはデータベースやテスト用のファイルとなっています。
それではモデルファイル「post.rb」の中身を詳しく見ていきましょう。
モデルファイル「post.rb」の中身を見ると具体的な処理が記載がされていません。
モデルを作成し、データベースのテーブルを利用するだけなら、このまま使用することができます。
「Post」というクラスは「ApplicationRecord」というクラスを継承して作成されていることが分かります。
「ApplicationRecord」というクラスはmodelフォルダの中の「application_record.rb」の内容を引き継いでいます。
「application_record.rb」のファイルを開いてみると、「ApplicationRecord」というクラスは「ActiveRecord::Base」というクラスを継承して作られています。
つまり、すべてのモデルは「ActiveRecord」というクラスをもとに作られていることになります。
上記の作業だけではまだデータベースを使用できません。
データベースを利用するためにはマイグレーションを実行する必要があります。
マイグレーションとはデータベースを更新する作業のことです。
マイグレーションファイルにデータベースへの追加・削除・修正情報を記載することでデータベースを最新状態に保つことができます。
それではコマンドプロンプトで以下のようにコマンドを入力して実行しましょう。
これでマイグレーションが実行され、データベースにモデル用のテーブルが作成されました。
マイグレーションファイルがどのようになっているのか見てみましょう。
マイグレーションファイルはdbフォルダのmigrateというフォルダの中にあります。
今回のマイグレーションファイルは「20200427002157_create_posts.rb」という名前のファイルです。
上記のファイルではデータベース変更に関するソースコードが記述されています。
changeメソッド内でcreate_tableメソッドが実行されています。
do~endの間にカラム名とカラムの型を記述して設定しています。
Ruby on Railsを学ぶことができるオススメの教材
Ruby on Railsを知っている人
Ruby on Railsを学ぶのにオススメの参考書をみていきましょう。
Ruby on Rails 6 実践ガイド impress top gearシリーズ
本書では、1つの企業向け顧客管理システムを作る過程で、RailsによるWebアプリケーション開発の基礎知識とさまざまなノウハウを習得していきます。
各章末には演習問題が設けられているので、理解度を確かめながら確実に読み進められます。
Ruby on Railsを知っている人
Ruby on Rails 6 実践ガイド[機能拡張編]
本書は、2019年12月に出版された『Ruby on Rails 6実践ガイド』の続編です。
本編で作成した企業向け顧客管理システムBaukis2の機能をさらに拡張し、実用性の高いシステムにしていきます。
本書のテーマは多岐にわたります。
クッキー、リクエスト元のIPアドレス、Ajax、データベーストランザクション、排他的ロック、ツリー構造のデータなど、さまざまなWebアプリケーションに必須の機能を実装しながら解説します。
また、この機能拡張編では、HTMLフォームのさまざまなバリエーションを紹介しています。
特にRailsで業務システムを開発する場合、要求仕様に応じて自由にHTMLフォームを設計・実装する力が求められます。
本書では、さまざまなフォーム設計の事例を扱っていますので、一種のレシピ集として活用できます。
Ruby on Railsを知っている人
パーフェクト Ruby on Rails 【増補改訂版】
新しいRailsのバージョンでサポートされた機能の紹介だけでなく、Dockerでの導入方法など最新の実践的内容を追加し、現在のトレンドとなる開発スタイルを紹介します。
Ruby on Railsを知っている人
まとめ
Ruby on Railsを知っている人
最後まで読んで頂きまして、ありがとうございました。
途中で分からないことがあり、中々進まないこともあると思います。
しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!