めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

あれこれ

Contlloerは、Actionを決めることが役目としておいて、の話。
Actionの役割は、Viewを決めること、としておいて、の話。
Actionってなんだろう?と考える前に、ついつい値が入力されて...という場合ばかり考えていたけれど、値に左右されないActionもある、と。でも、基本は値を受けとりますよ、と。じゃあ、Actionって、2種類あるんだ、という考えで作ることにしてみます。

値を受け取るAction

  1. 認証が必要かどうか確かめる
  2. Actionの下準備をする
  • 受け取る値の定義をする
  • Viewについても?
  1. Actionを実行(実装)
  • 処理をする
  • 大体の場合、値についてValidateする
  • View(の名前)を返す

値を受け取らないAction

  1. 認証が必要かどうか確かめる
  2. Actionを実行(実装)
  • 処理をする
  • View(の名前)を返す

と考えてみました。
こうして考えたときに、「値についてValidateする」というのが気になります。
Actionがフォームの値をValidateする、ということなので、フォームの値はオブジェクトにする必要があると考えられます。
また、

  • Actionが受け取るフォームの値の定義
  • フォーム自体

には密接に関係がある、ということになります。改めて、何をいまさら、という話はあるんですが。

でも、まてよ、と。

Actionとフォームの値は密接な関係じゃなくて、一心同体じゃないか?と考えたらどうなるんでしょうか?
値がなければ、値を受け取るActionは存在し得ないことになります。それは、正しそうです(たぶんですけれど)。

つまり、「値を受け取るAction」は「フォームの値オブジェクト」だ、ともいえそうです。

ちょっと見えてきたような気がします。