相変わらずエラー問題に大苦戦中の もそ。
解説文の意味がまったく掴めず、もはやプログラミングというより読解力スキルの問題では...?という気もしないでもないのですが、地道に身につけて行こうと思います。
さて今日は、paramsについて書いていきます。
あろうことか商売道具のiPadをうっかり忘れてきてしまったので、今日は手描きのデータをスキャンして載せます。
##パラメータとは?
さっそくですが、こちらの図を見て下さい。
左側は入力フォームを表示しているビュー、右側はこのビューに紐付いているコントローラです。
この図の場合のパラメータは、"ビュー"でフォームに入力された情報、つまり画像URLとテキスト本文のことです。
この情報は、"キー"と呼ばれる情報名と一緒にコントローラへ送られます。
コントローラは、入力フォームから受け取った情報(=パラメータ)と、情報の名前(=キー)をテーブルに渡します。
##paramsとは?
paramsはハッシュの形(情報の入った箱)をとったデータです。
先ほどコントローラがテーブルに渡したパラメータを取得する指示する必要がありますよね。
この指示を出すための記述がparamsメソッドになります。
情報の受け渡しはコントローラが担当するので、記述するのはcontroller.rbファイルになります。
params[:キー名}
params[:image] => "http://mosotopochisample0322.jpg"
params[:text] => "もそとぽち"
ここで注意したいポイントが2つあります。
まず1つめは、キー名は格納されるテーブルのカラム名と同じであること。
カラム名とキー名が一致しないと、情報を渡したり取り出しができずにエラーとなってしまいます。
またコントローラがparamsメソッドで取りだした情報は、ビューで表示されます。
ビューは見た目を担当する部分なので、html.erbファイルで記述されますよね。
ということは、html.erbファイル内でキー名を指定する必要があります。
そのためHTML内で属性名を正しく指定できているかが2つめのポイントになってきます。
html.erbで属性値を間違えてしまうと、コントローラは
「え?そんなキーないし情報出せないよ?」
と情報を呼び出せず、エラーを起こしてしまいます。
--
今回はparamsメソッドの説明と一緒に、気をつけるべきエラーについても書いてみました。
実際のエラー文を解決しながら学習すると「あ、この部分がおかしいから具体的にこういう動きしていたんだな」と気付きが多く、とても勉強になります。
理解するまでは気が遠くなりそうですが、頑張ろうと誓ったもそでした。続く。