[入門者向け] Ruby on Railsのcontrollerを分かりやすく解説!

このページではRuby on Railsのcontrollerの基礎知識を詳しく解説していきます。

最後まで読んでいただくことでRuby on Railsのcontrollerの基礎知識を習得することができるようになります。

是非、読んでいただけたらと思います。

1.controllerとは?

Ruby on RailsはMVCを使ったフレームワークとなっています。

MVCとはModelViewsControllerの略となっています。

Modelはデータベース担当Viewsは画面担当Controllerは全体の制御担当という役割を担っています。

もし、Ruby on RailsとはどのようなものかやMVCとはどのようなものかをもっと知りたい方は以下の記事をご覧ください。

[入門者向け] Ruby on railsとは? できることは? 分かりやすく解説!

さて、MVCの3つの中で一番重要な役割を担っているのはどれでしょうか。

データベースはなくてもWebアプリケーションを作成することができるのでModelではないですし、画面は実はViewを使わずにControllerで表示させることができます。

しかし、全体を制御するControllerは必要不可欠な存在です。

Controllerを作らないと、Webアプリケーションが動作することがありません。

まず始めにControllerの使い方を覚える必要があります。




2.controllerの作成方法

ではControllerを作っていきましょう。

Controllerはコマンドプロンプトからコマンドを入力して作成していきます。

ここではWebアプリケーション「WebApp」を作成し終えているという前提でControllerを作成していきます。

もし、WebAppの作成手順が分からない方は以下の記事をご覧ください。

「WebApp」のフォルダに移動しましょう。

ここでは「sample」という名前のcontrollerを作成していきます。

コマンドプロンプトで以下のように実行してください。

これで「sample」というコントローラーが作成されます。

rails g controller コントローラー名

コントローラー名の部分に作成したいコントローラー名を記述して実行するだけでコントローラーを作成することができます。

コントローラー名は日本語ではなく、半角英数字でつけるようにしましょう。




3.controllerの中身

controllerを作成した時にたくさんのファイルが作成されましたが、作成されたものを見ていきましょう。

sample_controller.rb

sampleコントローラーのプログラムとなっています。

sample

Viewを配置するフォルダです。

sample_controller_test.rb

テストのためのプログラムです。

sample_helper.rb

ヘルパーというプログラムです。

sample.coffee

coffeescriptというスクリプトファイルです。

sample.scss

sassというスタイルシートのようなものです。

たくさんのファイルが作成されましたが、事前に作っておくことで後から作成しなくても済むようになっています。




4.controllerにアクション追加

controllerを作成した時にたくさんのファイルが作成されましたが、ここでは「sample_controller.rb」というファイルを使用していきます。

末尾に拡張子「rb」がついていますが、これはRubyのスクリプトファイルという意味を持っています。

「sample_controller.rb」はどこに格納されているのでしょうか。

上記のファイルは「app」フォルダの「controller」フォルダの中にあります。

「sample_controller.rb」を開くとどのようになっているのでしょうか。

上記では「SampleController」という名前のクラスを作成しています。

コントローラーのクラスは「クラス名Controller」という名前で作成されます。

Railsではクラス名のあとにControllerをつけると、コントローラークラスであると認識されます。

コントローラーのクラスは継承という機能を使って作成されています。

継承とは既存のクラスの機能を受け継いで新しいクラスを作る機能です。

ここでは「ApplicationController」というクラスを継承して、新たに「SampleController」というクラスを作っています。

このままだとコントローラークラスは何も機能しないのでアクションを追加する必要があります。

アクションとはWebブラウザからのアクセスに対応するための処理です。

コントローラーには様々なアクションのメソッドを複数用意することができます。

アクションメソッドの中に実行処理を用意することで、Webページに処理内容を反映させることができます。

ここではWebページに「Hello World!」を表示させてみましょう。

クラスの中にindexという名前のメソッドを用意しましたが、このことをアクションメソッドと呼びます。

クラスの中にアクションメソッドを用意しておくことで、アクセスしたアドレスに応じて特定のアクションメソッドが呼び出されます。

この場合だと「http://localhost:3000/sample/index」にアクセスするとindexというアクションメソッドが実行されます。

しかし、indexというアクションを追加しましたが、このままだと以下のようにエラーがでます。

なぜ、エラーが出たかは次の章で解説します。




5.ルーティングに情報を追加

なぜエラーが出たのでしょうか?

それはルーティング設定がされていないからです。

ルーティング設定とはアクセスしたアドレスと呼び出されるアクションメソッドの関係を設定することです。

ここでは「sample/index」というアクセスするとindexのアクションメソッドが呼び出されるという設定を行う必要があります。

ルーティング設定はconfigフォルダ内にある「routes.rb」というファイルに格納されています。

「routes.rb」というファイルのdo-end構文の間にルーティング設定を記述していきます。

上記のように記述することで今度はエラーが起きずにアクセスすることができます。

「get ‘sample/index’, to: ‘sample#index’」とルーティング設定を行いましたが、これはどのような意味を持っているのでしょうか。

「sample/index」というアドレスにアクセスしてきたら、「sampleコントローラーのindex」を呼び出すという意味になっています。

他にルーティング設定を行いたい場合は以下の公式に当てはめるとできるかと思います。

ルーティング設定

get ‘アドレス’ to: ‘コントローラー#アクション名’




6.Ruby on Railsを学ぶことができるオススメの教材

Ruby on Railsを学習している皆様にオススメの教材をご紹介させていただきます。

現場で使える Ruby on Rails 5速習実践ガイド

以下の本はRuby on Railsの学習を一通り終えてある程度知識を身につけた方にオススメしたい本です。

現場で使える Ruby on Rails 5速習実践ガイド」は現場で実際にどのように使われているのかという視点も交えて解説されています。

そのため、初心者の方が次のステップに進むために最適な本となっていますので、オススメです。

これらの本で是非学習を進めてみてはいかがでしょうか?

レベル別におすすめの本も紹介していますので、どのような本がオススメか知りたい方はこちらもご覧になって下さい。

[2021年最新版] Ruby on Rails を学ぶことができるおすすめの本/参考書

Udemy

UdemyではRuby on Railsを学ぶことができる講座を多数取り扱っています。

以下の記事でRuby on Railsを学ぶことができるオススメの講座をまとめていますので、よかったらご覧になって下さい。

[2021年最新版] Udemy(ユーデミー) おすすめのRuby on Rails講座

プログラミングスクール

TechAcademyWebCampCodeCampTech CampなどでRuby on Railsを学ぶことができます。

それぞれ無料体験も行っているので、どのようなものか試してみるのもいいでしょう。

以下の記事で各プログラミングスクールをまとめているのでこちらもよかったらご覧になってください。

いくら? 悪評は? TechAcademy(テックアカデミー)とは? 口コミもまとめてみました! [受講した方の感想アリ!] DMM WEBCAMP SKILLSとは? 料金・口コミをまとめてみた! [課題が難しい?] 初心者向け! CodeCamp(コードキャンプ)とは? 特徴・料金・口コミをまとめてみました! [感想・体験談アリ!] 実際にTech Camp(テックキャンプ)のプログラミング教養でプログラミングをやってみた! [体験談] Tech Camp(テックキャンプ)のプログラミング教養の学習内容は? 働きながらTECH CAMP(テックキャンプ)で学ぶことはできるのか? 結論:可能です! TECH CAMP(テックキャンプ)ではどのような言語・技術を学ぶことができるの? TECH CAMP(テックキャンプ)の受講料はどのくらい? 安く通う方法もお話します! [体験談・感想あり!]TECH CAMP(テックキャンプ)でどのようなスキルが身につくの?




7.ポイント

ポイント
  • 「rails g controller コントローラー名」でコントローラーを作成することができます
  • コントローラーにアクションメソッドを用意したら、ルーティング設定を行う必要があります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です