Rails
HTML5
RubyOnRails

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

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

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

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