# はじめに
みなさんこんにちは。塩尻オープンソースラボの小澤です。
前回まで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メソッドを使用して実装します。
この続きは以下をご覧ください
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。