LoginSignup
0
1

More than 3 years have passed since last update.

ProgateのRuby on Railsコースの気になった所【params】

Last updated at Posted at 2020-06-18

プログラミング未経験の初心者ですが、少し前にProgateのRuby on Railsコースを終わりました。

Railsチュートリアルをしながら復習してみると、Progateをやっていた時はあまりピンと来なかったけど、今なら少し理解できることが増えたので、気づいた点をまとめていきたいと思います。
Progateしているけど、ピンと来ていないな、ここ分からないなと思っている方のお役に立てば幸いです。

paramsとは何か【コースⅢ】

Railsコースで頻出するparamsですが、正直「わかるような、わからないような...」と思っていました。

平たく言うと、
paramsはURLから送られてきた値やフォームで入力した値をparams[:パラメーター名]で取得するメソッドです。

2020/6/20 とても参考にしたページのURLを追記します
https://note.com/sakusaku34/n/nc143e418b700

例をあげると投稿内容の詳細ページの場合だとこのような使い方になります。

def show
  @post = Post.find_by(id: params[:id])
end

自分の場合、一つひとつの知識はその時には言っていることは分かるけど、記述していると知識が繋がらなかったので、なるべく分解して要素にするようにしています。例にあげたコードはこんな感じになります。

前提としてこの子たちはアクションといいます。

controllerで定義されるメソッドを指してアクションと呼びます。

引用&参考記事 https://qiita.com/morikuma709/items/5b21e9853c9d6ea70295

  1. まず、@postは変数です。 まずここがピンときていなかった!(致命的)
  2. @postを定義して、Postテーブルからidを探します。find_by[id:(id番号)]で探します。 find_by[id:(id番号)]はid以外もデータベースから1つの要素のものを探すことができます。(userとか)
  3. このコードは「find_byでidを探す」、と指定しています。 そこから、探したいidは何かを記述します。今回の場合、params[:id]がそのidにあたります。 このparamsはURLから送られてきた値やフォームで入力した値をparams[:パラメーター名]で取得するメソッドです。(大事なことなので2回書きました)
  4. つまりどこからかidとして値を送られていて、それを受け取るということになります。 どこからidが送られているのか、 それは、データベースに登録されている固有のidを持ったPostのルーティングからとってきています。

このコードはつまり、「ルーティングで各投稿のデータベースidをURLとしたから、find_by[id:(id番号)]で、id番号が同じものを探して表示してね」という内容になります。

まとめ

・paramsはURLから送られてきた値やフォームで入力した値をparams[:パラメーター名]で取得するメソッド
find_by[id:(id番号)]はid以外もデータベースから1つの要素のものを探すことができます。

初心者なので認識不足な部分もあるかもしれませんが、ここまでお読みいただきありがとうございます。
修正や訂正ポイントがあればコメントいただけると嬉しいです。

0
1
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
0
1