データベースに慣れよう!Ruby on Railsでmodelの使い方【初心者向け】

初心者向けにRuby on Railsで使うmodelの使い方を解説しています。データベースとのやりとりを行うのに必要なコマンドが多いのでしっかり覚えておきましょう。データベースの理解はサーバーサイドにおいて重要です。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

modelとは、Rubyのフレームワークrailsのデータベースとのやりとりを行うために用意されているものです。今回はそのmodelをrails内で作成する方法、実際に使用する方法について解説していきたいと思います。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

大石ゆかり

田島メンター!!モデルというのは何ですか~?

田島悠介

モデルはデータベースとやりとりを行うためのもので、ユーザーからのリクエストがデータに関するものだった場合に必要になるんだ。

大石ゆかり

データベースから値を取得したり格納したりするときに、モデルを経由するってことでしょうか?

田島悠介

そんな感じだね。では実際に、モデルを作成する手順を見ていこう。

 

modelの作成方法

rails generate model モデル名

とするとモデルを作成する事が出来ます。また、generateは省略して以下のように、

rails g model モデル名

としても作成する事ができます。それでは今回はUserというmodelを作成してみましょう。

rails g model User

とターミナルに打ち込み、以下のような画面が表示されたら、モデルの作成は成功です。

Running via Spring preloader in process 33795
invoke active_record
create db/migrate/20160403032828_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml

また modelを作成する際はUser,Text,Postのように、1文字目を大文字にするようにしてください。

その後、modelをデータベースに適用させるために以下のコマンドを打ち込んでください。

bundle exec rake db:migrate

 

田島悠介

モデルを作成するときの名前に関する注意点として、「アルファベット大文字から」「単数形にする」の2つがあるね。

大石ゆかり

“Users”じゃなくて”User”にするってことですね。

田島悠介

次はモデルに要素を追加してみよう。

 

modelへの要素の追加

それではmodelに要素を追加していきましょう。

先ほど作成したUserモデルにnameという要素を追加します。以下のコマンドをターミナルに打ち込んでださい。

rails g migration add_name_to_users name:string

以下のように表示されれば成功です。

rails g migration add_name_to_users name:string
Running via Spring preloader in process 34107
invoke active_record
create db/migrate/20160403034050_add_name_to_users.rb

これでuserモデル内にnameという要素が追加されました。

 

今回はmodelについて簡単に解説していきました。modelは今後Railsでアプリを作るにあたって何度も作成するのでしっかりと抑えておきましょう。

 

田島悠介

カラムを追加するときは”名前:データ型”というような形で入力するよ。

大石ゆかり

今回の場合、nameと言う名前のstring、短い文字列型の項目ができたってことですね。

田島悠介

そうだね。また、モデルを作成した際にマイグレーションというものも同時に生成されているんだ。これについてはまた別のところで詳しく説明するよ。

大石ゆかり

分かりました。ありがとうございます!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する