Help us understand the problem. What is going on with this article?

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

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

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

個人開発をされている方へ

Moverというプロダクトを開発しています。登録していただくと、開発したプロダクトのテスト利用を依頼し、フィードバックをもらうことができます。自分のプロダクトを公開して個人開発を加速させましょう!! 現在僕のアカウントも登録されているので、そちらにテスト利用依頼をいただければ実際に使ってみた感想などをお送りさせて頂きます。(アドバイスなどではなく、一人のユーザーとしての感想となります。) もちろん無料です。
https://mover-web.herokuapp.com/

Screen Shot 2020-05-19 at 4.36.42 PM.gif

tomoharutt
webエンジニアやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away