とはいえ、一度にこれら全部についてまとめて覚えるのはちょっと大変ですね。そこで、不要なものを使わなくていいようにして、1つずつ順番に使っていくことにしましょう。
先ほどの必要性を考えるなら、まず最初に使い方を覚えなければいけないのは「
Controller」です。ですから、
Controllerだけを使い、
Modelと
Viewを使わずに済ませることにしましょう。
■Modelを使わないことは可能?
Viewは、レンダリング時に使わないようにすることができますが、問題は、
Modelです。Railsの
Modelでは、「
Active Record」という機能が用意されており、これにより自動的にデータベースを扱えるようにしてくれるのですが、逆にこの
Active Recordのおかげで、標準の状態では「
Modelまでセットで用意しないと動かない」というような仕組みになっているのです。
今回、とりあえず
Modelを使わず、
Controllerと
Viewだけ(といっても、View
も今回は使いませんが……)でRailsアプリを作成してみますが、これは通常の開発スタイルではありません。
注意すべきは、「これはローカルのテストサーバーでしか動かない」という点です。Herokuにデプロイしても動かないのです。Herokuは内部に
PostgreSQLを持っており、デプロイされたRailsアプリのデータベース関連の部分を自動的に内部
PostgreSQLを利用するように変更しているようです。
Heroku以外のサーバーでは、Railsの一部を修正することで
Modelなしで動かすことが可能なところもありますが、原則として「Railsは
MVCすべてが一式揃って動くのが基本」と考えてください。
(※また、Herokuで動作しないため、eXo IDEによるオンラインIDEベースの開発の説明は省略します)■Controller作成のコマンド
では、
Controller(コントローラー)を作成しましょう。MVCの各パーツ類の作成は、ターミナルから「
rails」コマンドを実行して行います。これは以下のように実行します。
rails generate controller 名前 アクション1 アクション2 ……
Controllerは、「
rails generate controller」というコマンドで作成できます。その後に、作成する
Controllerの名前を記述することで、その名前の
Controllerが作成されます。
名前の後に、「
アクション」というものを記述することができます。これは、その
Controllerに用意できるさまざまな処理を実行するためのものです。
Railsでは、1つ1つのページごとに
Controllerを作るわけではありません。例えば、あるデータベースのテーブルを使ったアプリを考える場合、そのテーブルのデータを表示したり、データを追加したり、削除や編集をするなど、いくつものページが必要となるでしょう。これらをすべて別々の
Controllerとして作成するのはけっこう面倒ですね。
そこでRailsでは、
Controllerの中に
アクションというものを用意し、このアクションでそれぞれのページの処理を行うようになっています。あるテーブルを利用するアプリであれば、その
Controllerの中に、テーブルを表示するアクション、新たに追加するアクション、削除するアクション……というように、テーブル利用のための基本的な操作をそれぞれアクションとしてまとめるのです。
Controllerは1つだけで、その中に役割ごとにアクションが作成される、というわけです。
rails generate controllerでは、
Controllerの名前の後に、作成するアクションの名前を記述します。これは必要に応じていくつでも記述することができます。こうすることで、複数のアクションをまとめて用意することができるわけです。