- English
- 日本語
Ruby on Railsを知っている人
このページではRuby on Railsのcontrollerの基礎知識を詳しく解説していきます。
最後まで読んでいただくことでRuby on Railsのcontrollerの基礎知識を習得することができるようになります。
是非、読んでいただけたらと思います。
\単月定額と比べて総額最大48,000円OFF!/
学び応援キャンペーン実施中!
【超安心】1か月間全額返金保証付き
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- TechAcademy
⇒ 無料体験レッスンに申し込む!
・Ruby/Ruby on Railsだけでなく、Git/GitHub、HTML/CSS、Bootstrap、SQL、Heroku、Web API、Vue.jsなど幅広く学ぶことができる
・今まで得た知識をアウトプットするために自分の作りたいWebサービスを作る
・無料体験レッスン実施中!
Ruby on Railsを知っている人
目次
controllerとは?
Ruby on RailsはMVCを使ったフレームワークとなっています。
MVCとはModel、Views、Controllerの略となっています。
Modelはデータベース担当、Viewsは画面担当、Controllerは全体の制御担当という役割を担っています。
さて、MVCの3つの中で一番重要な役割を担っているのはどれでしょうか。
データベースはなくてもWebアプリケーションを作成することができるのでModelではないですし、画面は実はViewを使わずにControllerで表示させることができます。
しかし、全体を制御するControllerは必要不可欠な存在です。
Controllerを作らないと、Webアプリケーションが動作することがありません。
まず始めにControllerの使い方を覚える必要があります。
controllerの作成方法
ではControllerを作っていきましょう。
Controllerはコマンドプロンプトからコマンドを入力して作成していきます。
ここではWebアプリケーション「WebApp」を作成し終えているという前提でControllerを作成していきます。
「WebApp」のフォルダに移動しましょう。
ここでは「sample」という名前のcontrollerを作成していきます。
コマンドプロンプトで以下のように実行してください。
これで「sample」というコントローラーが作成されます。
rails g controller コントローラー名
コントローラー名の部分に作成したいコントローラー名を記述して実行するだけでコントローラーを作成することができます。
コントローラー名は日本語ではなく、半角英数字でつけるようにしましょう。
controllerの中身
controllerを作成した時にたくさんのファイルが作成されましたが、作成されたものを見ていきましょう。
sample_controller.rb
sampleコントローラーのプログラムとなっています。
sample
Viewを配置するフォルダです。
sample_controller_test.rb
テストのためのプログラムです。
sample_helper.rb
ヘルパーというプログラムです。
sample.coffee
coffeescriptというスクリプトファイルです。
sample.scss
sassというスタイルシートのようなものです。
たくさんのファイルが作成されましたが、事前に作っておくことで後から作成しなくても済むようになっています。
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というアクションを追加しましたが、このままだと以下のようにエラーがでます。
なぜ、エラーが出たかは次の章で解説します。
ルーティングに情報を追加
なぜエラーが出たのでしょうか?
それはルーティング設定がされていないからです。
ルーティング設定とはアクセスしたアドレスと呼び出されるアクションメソッドの関係を設定することです。
ここでは「sample/index」というアクセスするとindexのアクションメソッドが呼び出されるという設定を行う必要があります。
ルーティング設定はconfigフォルダ内にある「routes.rb」というファイルに格納されています。
「routes.rb」というファイルのdo-end構文の間にルーティング設定を記述していきます。
上記のように記述することで今度はエラーが起きずにアクセスすることができます。
「get ‘sample/index’, to: ‘sample#index’」とルーティング設定を行いましたが、これはどのような意味を持っているのでしょうか。
「sample/index」というアドレスにアクセスしてきたら、「sampleコントローラーのindex」を呼び出すという意味になっています。
他にルーティング設定を行いたい場合は以下の公式に当てはめるとできるかと思います。
get ‘アドレス’ to: ‘コントローラー#アクション名’
Ruby on Railsを学ぶことができるオススメの教材
Ruby on Railsを知っている人
Ruby on Railsを学ぶのにオススメの参考書をみていきましょう。
Ruby on Rails 6 実践ガイド impress top gearシリーズ
本書では、1つの企業向け顧客管理システムを作る過程で、RailsによるWebアプリケーション開発の基礎知識とさまざまなノウハウを習得していきます。
各章末には演習問題が設けられているので、理解度を確かめながら確実に読み進められます。
Ruby on Railsを知っている人
Ruby on Rails 6 実践ガイド[機能拡張編]
本書は、2019年12月に出版された『Ruby on Rails 6実践ガイド』の続編です。
本編で作成した企業向け顧客管理システムBaukis2の機能をさらに拡張し、実用性の高いシステムにしていきます。
本書のテーマは多岐にわたります。
クッキー、リクエスト元のIPアドレス、Ajax、データベーストランザクション、排他的ロック、ツリー構造のデータなど、さまざまなWebアプリケーションに必須の機能を実装しながら解説します。
また、この機能拡張編では、HTMLフォームのさまざまなバリエーションを紹介しています。
特にRailsで業務システムを開発する場合、要求仕様に応じて自由にHTMLフォームを設計・実装する力が求められます。
本書では、さまざまなフォーム設計の事例を扱っていますので、一種のレシピ集として活用できます。
Ruby on Railsを知っている人
パーフェクト Ruby on Rails 【増補改訂版】
新しいRailsのバージョンでサポートされた機能の紹介だけでなく、Dockerでの導入方法など最新の実践的内容を追加し、現在のトレンドとなる開発スタイルを紹介します。
Ruby on Railsを知っている人
まとめ
Ruby on Railsを知っている人
最後まで読んで頂きまして、ありがとうございました。
途中で分からないことがあり、中々進まないこともあると思います。
しかし、順を追って学習を進めていけば、必ずできるようになるのであきらめず最後までやりぬきましょう!