MVCのことはちゃんと理解した方がいいから備忘録。
#1.コントローラとは
MVCモデルのC。ユーザーからのリクエストを受け取り、モデルを介してデータを授受したり、ビューを用いてHTML出力を生成するもの。
見方を変えると、コントローラはモデルとビューの仲介をしているとも取れる。モデルのデータをビューで使えるようにすることで、データをビューで表示したり、入力されたデータでモデルを更新したりする。
#2.コントローラの作り方
ターミナルにおいて下記のように入力して生成する。
% rails g controller (コントローラ名)
コントローラの名前は複数形を使うことが一般となっている。
絶対ではないが遵守することで、既存のルーティングジェネレータがそのまま使えたり、名前付きのルーティングヘルパーの用法がアプリケーション全体で一貫する。
#3.メソッドとアクション
railsのコントローラは全てApplicationControllerを継承したRubyのクラスとなっている。例えば、SamplesControllerというコントローラがあったとして下記のような記述が冒頭にあることから左記のようなことがわかる。
class SamplesController < ApplicationController #継承を示している
###記述の凡例
class SamplesController < ApplicationController
def new
end
end
このような記述の場合、/samples/new
にアクセスをするとSamplesControllerのインスタンスを作成してnewメソッドを呼び出す。ここでnewメソッドは内容が空でも、railsではアクションで特に指定がない場合はnew.html.erbというビューを返すことになっている。
##4.パラメータ
コントローラのアクションではユーザーから送られてきたパラメータにアクセスをして何かの作業を行う。
パラメータのは2種類あって、一つはURLの一部として送られる「クエリ文字列(URL)パラメータ」もう一つはフォームから受け取る「POSTパラメータ」がある。いずれもparams
というハッシュでアクセスできる
###クエリパラメータ例
https://hogehoge.jp/fugafuga?id=1
上記の?id=1
の部分がクエリ文字列(URL)パラメータにあたる。