Posted at

paramsとhtmlの理解(初心者の方向け)

More than 1 year has passed since last update.


paramsとhtmlがわからないと、サービスが作れない(・・・気がする)

rails始めた頃、paramsとhtmlの理解がなかったのですが、最近ようやく理解したので備忘録として残します。

この部分の理解がないと、双方向型であるwebサービスが作れないので、かなり大事です。

webアプリケーションのサービス構造は基本的には、お客さんが投稿し、それをデータベースに保存し、さらにそれをどこかしらのページから見れるようにするというものです。それをrailsでコーディングした場合の中身の解説をしてみたいと思います。paramsとhtmlの書き方がわかればおおよそ把握できます。


paramsとは?

初めてrailsを触って、paramsはパラメータを入れる箱だとか言われても、パラメータ????ってなりますよね。実際自分がそうでしたが。。。

パラメータは「サービスの利用者がサーバに対して送ってきた値」と考えれば良いかと思います。そして、その値を格納するための箱がparamsになります。

例えば、このような感じです。

params[:title]

titleという名前のついたパラメータを利用者が飛ばし、それを格納しています。

要は、これはお客さんが送った値だよということをrails側に分からせてあげる訳です。

しかし、上の動作を行うためには、お客さんが送ったデータにtitleという名前をつけてあげなければいけません。

それをするのがhtmlの役割です。


お客さんが送った値をどうとるのか

htmlのコードを見てみましょう。

<label>タイトル</label>

<input type="text" name="title">

これがお客さんが送る側のフォームのコーディングになります。

labelは入力フォームの名前。

inputはこれは入力フォームですよということを教えてくれています。

typeは、このフォームは文章を入れるためタイプのフォームですよと設定してくれています。

nameがここに入力された内容はtitleという名前がつけられますよとしてくれています。

もうお分かりだとは思いますが、このnameがパラメータの名前になります。

ここに書かれたデータ内容は問答無用でtitleという名前がつけられ、サーバに送られます。


最後にサーバーに保存する

今までの流れを確認すると、

まず、htmlのフォーム画面からデータがサーバに送られ、そのデータには名前がついている。今回は"title"。

そして、それをparamsの箱に格納する。

そのデータをrails側で保存するという流れが先に続きます。

@book.title = params[:title]

@book.save

bookのタイトルというカラムに、送られてきたデータを格納し、そのままデータベースを保存するという形になります。


専門用語はガンガン聞いた方が良い

自分もまだまだ初心者ですが、教えてくれる方は専門用語ガンガン使います。先ほどで言えば、パラメータとかカラムとか。。。。 ただ何も知らない人からすれば????って感じなので、その都度聞いた方が学習速度が早まるかと思います。