1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

もそ、プログラミングを学ぶ【Ruby & Rails復習編】〜paramsがわからない〜

Last updated at Posted at 2019-04-17

相変わらずエラー問題に大苦戦中の もそ。
解説文の意味がまったく掴めず、もはやプログラミングというより読解力スキルの問題では...?という気もしないでもないのですが、地道に身につけて行こうと思います。

さて今日は、paramsについて書いていきます。
あろうことか商売道具のiPadをうっかり忘れてきてしまったので、今日は手描きのデータをスキャンして載せます。

##パラメータとは?
さっそくですが、こちらの図を見て下さい。
左側は入力フォームを表示しているビュー、右側はこのビューに紐付いているコントローラです。

無題12.jpeg

この図の場合のパラメータは、"ビュー"でフォームに入力された情報、つまり画像URLとテキスト本文のことです。
この情報は、"キー"と呼ばれる情報名と一緒にコントローラへ送られます。

コントローラは、入力フォームから受け取った情報(=パラメータ)と、情報の名前(=キー)をテーブルに渡します。

##paramsとは?
paramsはハッシュの形(情報の入った箱)をとったデータです。
先ほどコントローラがテーブルに渡したパラメータを取得する指示する必要がありますよね。
この指示を出すための記述がparamsメソッドになります。
無題13.jpeg

情報の受け渡しはコントローラが担当するので、記述するのはcontroller.rbファイルになります。

params[:キー名}

params[:image] => "http://mosotopochisample0322.jpg"
params[:text]  => "もそとぽち"

ここで注意したいポイントが2つあります。
まず1つめは、キー名は格納されるテーブルのカラム名と同じであること。
カラム名とキー名が一致しないと、情報を渡したり取り出しができずにエラーとなってしまいます。

またコントローラがparamsメソッドで取りだした情報は、ビューで表示されます。
ビューは見た目を担当する部分なので、html.erbファイルで記述されますよね。
ということは、html.erbファイル内でキー名を指定する必要があります。
そのためHTML内で属性名を正しく指定できているかが2つめのポイントになってきます。

html.erbで属性値を間違えてしまうと、コントローラは
「え?そんなキーないし情報出せないよ?」
と情報を呼び出せず、エラーを起こしてしまいます。

--
今回はparamsメソッドの説明と一緒に、気をつけるべきエラーについても書いてみました。
実際のエラー文を解決しながら学習すると「あ、この部分がおかしいから具体的にこういう動きしていたんだな」と気付きが多く、とても勉強になります。
理解するまでは気が遠くなりそうですが、頑張ろうと誓ったもそでした。続く。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?