1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

0からのRuby入門その24〜Ruby on Railsでコントローラーを作る〜

Pocket

はじめに

MVCアーキテクチャの全体像をイメージできるようになりましたか?

MVCアーキテクチャで中心的な役割を果たすのは「コントローラー」です。
コントローラーはブラウザからのリクエストを受け取り、ビューやモデルと連携して結果をブラウザに返します。
このため、まずはコントローラーの動作を理解するところから始めるべきでしょう。

この記事では、Ruby初心者の方向けに、Ruby on Railsのコントローラーの扱い方についてお伝えしていきます。

MVCアーキテクチャの各要素をひとつずつ理解していきましょう。

コントローラーの役割

ウェブアプリケーションは、ブラウザを介して利用します。

ブラウザは、ウェブアプリのURLにアクセスし、そこでURLに対応したコントローラーが呼び出されることになります。

コントローラーは、モデル(データ)を取得し、ビュー(ページ)と組み合わせてブラウザに結果を返します。
これが、基本的な一連の流れです。

まずは、学習のために新しいプロジェクトを作成しましょう。

新しいプロジェクトを作成する

ここでは、例として学生名簿を管理するウェブアプリを作ります。

前回の記事でも取り上げましたが、Ruby on Railsでは”railsコマンド”を使ってプロジェクトテンプレートを作成できます。
任意のディレクトリで、次のコマンドを入力して下さい。

このコマンドでは、プロジェクト名に”students_list”を指定して、新しいプロジェクトを作成しています。
たくさんのディレクトリとファイルが生成されましたね。

この時点で、すでにウェブアプリとして実行可能な状態になっています。

次のコマンドを入力して、うまく動作するか確認してみましょう。

このコマンドでは、プロジェクトディレクトリに移動してRailsに組み込まれている開発用のウェブサーバーを起動しています。

コマンドによって表示されるURL(例:http://localhost:3000/)にブラウザからアクセスしてみましょう。
正しくデフォルトページが表示されればOKです。

スキャフォールディングを利用する

プロジェクトを作成できたところで、コントローラーの作成に入っていきましょう。

ここでは、手作業でコントローラーファイルを作成するのではなく、「スキャフォールディング(足場)」機能を使って、コントローラーファイルを自動生成します。

次のコマンドを入力して下さい。

このコマンドでは、モデルとして”Student”という名前を指定してスキャフォールディングを実行しています。

同時に3つの属性を指定していますが、こちらはモデルの話になるので次回の連載にて説明します。

このコマンドひとつで、関連するコントローラー・モデル・ビューのファイルが自動生成されました。

”app”ディレクトリ内の”controllers”、”models”、”views”ディレクトリを確認してみましょう。
いくつかのファイルが追加されていることが確認できますね。

生成されたコントローラーを見てみよう

それでは、生成されたコントローラーファイルを見てみましょう。

”app/controllers”ディレクトリにある” students_controller.rb”ファイルを開いて下さい。

Railsのコントローラーは、「ApplicationController」のサブクラスとして定義します。

クラスとして、” StudentsController”が定義されていますね。
そして、その中にいくつかのメソッドが定義されていることがわかります。
これは「アクション」と呼ばれるものです。

アクションは、特定のURLとHTTPメソッド(GET/POST/PUT/DELETEなど)がリクエストされたときに実行されるメソッドです。
ファイル中に、コメントとしてURLの例が記述されていますので、確認してみましょう。

既定では、コントローラー名がURLに含まれます。

これはこのまま使うこともできますし、”config”ディレクトリ内の” routes.rb”ファイルを編集することで変更することも可能です。

次回は、このコントローラーで使用されているモデルについて見ていきましょう。

まとめ

Ruby on Railsのコントローラーについて理解できましたか?

コントローラーは、MVCアーキテクチャで中心的役割を果たします。
次の要素に進む前に、しっかり理解しておきましょう。

また、”railsコマンド”を使ってスキャフォールディングを行う方法を学びました。
Railsでは、コマンドを利用して多くのファイルを自動生成できるので、積極的に利用してみましょう。

次回は、MVCアーキテクチャのモデルについて説明します。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る