logo

コントローラの役割とActionControllerを知ろう

ヒューマンリソシア株式会社はコラム「コントローラの役割とActionControllerを知ろう」を公開しました。

###

# はじめに
みなさんこんにちは。塩尻オープンソースラボの小澤です。

前回まで3回に渡りActiveRecordを取り上げ、関連付けやバリデーションなどの機能を紹介しました。今回からは、MVCアーキテクチャのC、すなわちコントローラ(Controller)を取り上げます。ActionControllerとルーティングについて解説していきましょう。

# コントローラの役割
コントローラは、ユーザーからのリクエストを受け取り、モデルやビューと連携しながら、結果(レスポンス)をユーザーに返す役割を担っています。モデルのデータをビューで表示したり、ユーザーが入力したデータでモデルを更新したりと、モデルとビューの仲介をおこなっているとも言えます。

コントローラは、rails generate controllerコマンドで作成できます。作成されたコントローラクラスは、ApplicationControllerを継承しています。さらに、ApplicationControllerは、ActionController::Baseを継承しています。コントローラクラス名の最後の部分は、基本的に「複数形」となりますが、絶対ではありません。(ちなみに、モデルの命名規則は「単数形」でした。)

# ActionController
コントローラクラスが継承しているActionController::Baseには、便利なメソッドが多く収録されています。ここでは、重要なメソッドについて紹介しましょう。

## パラメータ

ユーザーからリクエストされたパラメータは、paramsメソッドが返すparamsというハッシュに集約されています。ハッシュの値には配列やハッシュが含まれることもあります。

Rails4では「Strong Parameters」がコア機能となりました。Strong Parametersを使用すると、ホワイトリスト形式でリクエストパラメータを検証することができます。この機能によって、paramsハッシュに想定外のパラメータが含まれていた場合にアプリケーションの想定外の動作を引き起こす、Mass assignment脆弱性と呼ばれる問題を回避することができます。Strong Parametersは、以下のように、requireメソッドとpermitメソッドを使用して実装します。

この続きは以下をご覧ください
リンク

関連情報
http://resocia.jp/
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。