ここではMVCの最後、モデルについて学習する。
モデルはRailsアプリの中でも中心的な機能になる。しっかり理解していきたい。
- モデルの役割
- RDBとは何か
- データベースの作成方法
モデルとは
モデルはアプリで扱うデータに関する機能を担当する。
Railsの場合、主にデータベースと連携するために使用する。
RDB(リレーショナルデータベース)とは
Railsアプリでデータを保存する場合、主にRDB(リレーショナルデータベース)と呼ばれるデータベースを使用する。
まずRDBとは何か確認する。
RDBの特徴
RDBでは、縦横の行・列からなるテーブルにデータを保存し、テーブル同士を関連づけて使用する。
一般にデータベースといわれるものの大半はRDBなので比較的馴染みのあるものではないだろうか。
上の図では、「顧客情報」と「販売情報」をそれぞれのテーブルに保存し、お互いを「顧客ID」で結びつけて使う、という例になっている。
データベースとテーブル
ここでデータベースとテーブルの関係性を確認しておく。
データベースは、テーブルを入れるための入れ物である。
これからアプリを作っていくが、データベースは1つだけ作成する。
テーブルは、実際にデータを格納する場所である。
必要なデータの種類ごとに1つずつ作成する。幾つでも追加していくことができます
これからつくっていくPicTweetでも、「tweets」「comments」「users」というテーブルを作成する。
また、1つのテーブルに対して1つのモデルが対応する。
RDBでのデータの読み書き
RDBにデータを保存したり読み込んだりする時には、SQL文といわれる言語を使用する。
(今の時点でSQL文の内容に対する理解は不要)
SQL文の例
-- データの追加
INSERT INTO tweets
VALUES ('1', 'masato', '初ツイート', '2019/05/01' ,'2019/05/01')
-- データの取得
SELECT *
FROM tweets
WHERE name="masato"
RailsアプリとRDBの関係
Railsアプリを開発するために、RubyやRails以外にSQL文も覚えなくてはいけないとなると大変である。
そのため、Railsではもっと直感的にRDBを操作することができる。
Rubyのコードを書く感覚で記述を行えば、内部でSQL文に変換されRDBへの読み書きができる。
この仕組みはORM(ORマッパー)と呼ばれ、「モデル」で実装されている。
ORMがあるからこそ、Railsで非常に効率的にデータベースを扱うことができるのである。
データベースの作成
ここから実際にデータベースを作成する。
Railsでは非常に簡単に作ることが出来る。
データベースの作成方法
前の投稿ですでにデータベースは作成しています。もう一度コマンドを確認しておく。
$ rails db:create Created database 'pictweet_development' Created database 'pictweet_test'
phpMyAdminは、データベースの中身を視覚的に確認したり操作するためのツールである。
データベースの操作がしやすくなるため、インストールして使ってみる。
phpMyAdminを使う
以下のコマンドを実行する。
#phpMyAdminのインストール $ sudo yum -y install phpmyadmin
続いて、phpMyAdminを確認するための設定をする。
phpMyAdminをブラウザから確認できるようにする
- 設定ファイルのダウンロード
phpMyAdminをブラウザから確認するためには、いくつかの設定をする必要がある。
今回は設定用のファイルをこちらで用意しているため、以下のリンクより、ファイルをダウンロードする。
https://dl.dropboxusercontent.com/s/2ixifkkhuz6e2do/shell.zip?dl=0 - 設定ファイルをCloud9にアップロード
まずは、ダウンロードしたファイルをダブルクリックして解凍する。
「shell」というフォルダができたことを確認する。
続いて、Cloud9を開いているブラウザの一番上のフォルダに、「shell」フォルダ をドラッグ&ドロップする。
この時誤って「shell.zip」をアップロードしてしまわないよう注意 - apacheを起動する
#apacheの起動 $ sudo service httpd start #apacheの自動起動の設定 $ sudo chkconfig httpd on
- shellフォルダに移動し、中にあるmove.shを実行
#shellフォルダに移動 $ cd ~/environment/shell #move.shを実行 $ sh move.sh
これで、設定ファイルが更新された。
カレントディレクトリが「/environment/shell」になっているので、下記のコマンドをうち、pictweetに戻しておく。
#pictweetフォルダに移動 $ cd ~/environment/pictweet
-
phpMyAdminの確認
ここまでの操作で、phpMyAdminは起動しているはずである。
そこで、ブラウザからphpMyAdminを確認してみる。
Cloud9の画面の上部から「preview」→「Preview Running Application」とクリックすると、以下のように右下にwindowが開く。
そのwindowのurl欄をクリックすると、以下のようにURLが現れるため、これをコピーする。
コピーしたURLを、ブラウザに貼り付ける。
そしてアドレスの末尾の「/」取ってその後に「:8081」を付け足した上で、ブラウザ検索を実行する。
すると、以下のような画面になる。
続いて、URLの末尾に「/phpmyadmin」を追記し、検索を実行する。
すると、以下のようなページが表示される。
今度は、URL欄の先頭に、「https://」をつけ、検索を実行し、以下のような画面が出てきたら、成功である。
PicTweet用のデータベースもつくられていることが確認できる。
アドレスはブックマークしておくと便利。
その際は「pictweet DB」などわかりやすい名前にしておく。