Ruby on Railsのルーターとデータベースについて簡単にまとめる


将来Ruby on Railsで開発するかもしれないのでRuby on Railsに触れておきたいと思います。
やはりRuby on Railsの開発の作法を知っておかないと。
MVCに従わなければいけないということは知っているのですが、個人的に気になる部分をまとめておきます。


コントローラーがモデルから情報を受け取り、ビューに表示するという作業を担当しているので、コントローラーを軸に確認していきたいと思います。
コントローラーを実行するところからですね。

ルーター

railsはurlに応じて呼び出すコントローラーのメソッドを決定します。
これを行うのがルーターです。
設定は/config/routes.rbにいろいろ書いていきます。

これはルーターの記述例です。
ドメインがrails.comだとして、
rails.com/にアクセスがあったらTopControllerのindexメソッドが呼ばれます。
そしてapp/view/top/index.html.erbのhtmlがブラウザに表示されます。
rails.com/loginにアクセスがあったらTopControllerのloginメソッドが呼ばれます。
そして app/view/top/login.html.erbのhtmlがブラウザに表示されます。

ちなみにControllerは以下のように作成します。

例で挙げたControllerはこんな感じです。

ルーティングについては上で示した方法でも別にいいんですが、なにやらリソースベースのルーティングというものがあるそうです。
routes.rbに以下のように記述します。

こうすることでInfosControllerのindex,new,create,show,edit,update,destroyメソッドにアクセスできます。

railsはこれらのメソッドに以下のような機能を持たせてほしいらしいです。

  • indexはデータの一覧表示
  • newは新規登録のためのフォームを表示する
  • createはテーブルにレコードを追加する
  • showはデータの除法を表示する
  • editはデータの更新のためのフォームを表示する
  • updateはリソースを更新する
  • destroyはリソースを削除する


ただこれらのメソッドすべては必要ない時もあると思います。
routes.rbに以下のように記述します。
このコントローラーはindexとshowのみを使います。

これでひとまずコントローラーの作成からアクションの実行、htmlの表示まではできるようになりました。
まだまだルーターに関してはいろいろあると思いますが、ひとまずこれくらいでいいでしょう。

データベース

データベースの設定などはconfig/database.ymlに記載していきます。
railsでは、sqllite3を使用する場合は変更する必要はありませんが、mysqlなどほかのデータベースを使う場合は修正する必要があります。

railsではデータベースにアクセスする際にモデルというものを使用します。
モデルは以下のようにして作成します。

モデルの中身はこのようになっております。

ここではinfoモデルを作成しています。
そしてモデルに対応するテーブルを作ります。
上のコマンドを実行した時点でマイグレーションファイルというものが作成されます。
ファイルは/db/migrate/にあります。
このファイルの中にカラムを追加していきます。
たとえばこんな感じに。

ここではtitleカラムとbodyカラムを追加しています。
timestampsはマイグレーションファイルの作成時にデフォルトで記述されているものです。
この記述があるとcreated_atとupdated_atの二つのカラムが追加されます。
マイグレーションファイルはこのように実行します。

モデルオブジェクトはこのようにデータベースをいろいろします。

他にもメソッドが用意されてますが、これだけ覚えておけば問題ないかと思います。

バリデーションやらセキュリティなど知っておかないといけないことはほかにもありますが、
ひとまずこれで簡単なものは作れるようになりました。