No_ideaのわからん日和

✏️...プログラミングが全然出来ない奴がわからんわからん言いながら様々な構文(記述方法やエラー構文など)と奮闘しながら成長していく成長記録です🐢

Ruby on Rails: ビュー(時々ルーティングの見方)...chapter3-3-1

🧵手順

コントローラー➡︎ルーティング➡︎ビュー

 

 

モデルができた→DBとコントローラーの間の橋ができた。

ルーティングができた→これでユーザーがリクエストすればコントローラーに飛ばせる。

コントローラーができた→モデルもできるのでDBとのやりとりができる。ルーティングもあるのでリクエストがコントローラーまで届く。

 

あとは、そのリクエストの結果を出すビューを作ればおk!

というわけでビューの作成をしていきます。

 

③ビューの作成

app/views/の中にすでにtweetsフォルダが作成されている。これはtweetsコントローラーを作った時に自動的に作られてる。

 

 

では、このtweetsフォルダに映したいビューを作成して行きたいと思います。

 

1. index.html.erbとnew.html.erbの作成

ツイート一覧ページとツイート新規作成ページが欲しい。

なのでapp/views/tweets内にindex.html.erbとnew.html.erbを作成。

 

2. それぞれのビュー内容を作成

今回はビューにはこだわる予定はないので、最低限の実装で終わりにします。

なのでページをオシャレにしようとか整えようとか考えていません。

よってscssをいじる予定はないです。

 

では、実装していきます。

index.html.erb

 

new.html.erb

 

3. $rails sでサーバーを立ち上げる

ビューを見るにはサーバーを立ち上げなくてはいけない。

コマンドで$rails sをした後に、URLを入れるところ(アドレスバー)にhttp://localhost:3000/を入れます。

すると、

 

画面に出て来ました。

ここからどんな感じにビューがなってるか見てみます。

 

4. $rails routesでpathを見てみる

index.html.erbの方からみたいと思います。

いきなりアドレスバーにhttp://localhost:3000/indexと入れてみると

 

 

エラーが出て来た。

これでも、Routes match in priority from top to bottomの下にpathやHTTP動詞、コントローラーやアクションが書かれているが今回はコマンドでルーティングを見てみようと思う。

ターミナルに$rails routesとコマンドを打つ。

結果↓

と出てくる。

ツイートのindexのビューとnewのビューが見たいので探す。

↓あった

       Prefix              Verb        URI Pattern                          Controller#Action

tweets_index       GET            /tweets/index(.:format)               tweets#index

tweets_new         GET            /tweets/new(.:format)                  tweets#new

 

PrefixとURl Patternの違いとは?どっちもpathするものだよね???

どちらを使えばいいんや?

 

その前にpathって何?という方へ

私も最初わかりませんでした。私なりですが、

pathはそのファイルやフォルダが置いてある場所で、そのpathしたところを見にいくと各々のフォルダやファイルを見にいける

と、こんな感じに理解してます。

 

話は逸れましたが、PrefixとURl Patternの違いを調べてみました。

✏️PrefixとURl Patternの違い

結果:paramsがあるかないか

参照:https://qiita.com/akk11_k/items/5f8cbafb17f5991d5f88

。。。待て待てparamsって何なの?

調べました▶︎params...パラメーターを入れる箱。

。。。待て待てパラメーターって何なの?

調べました▶︎パラメーター...ユーザーが送って来た値。

→paramsがあるかないかとはユーザーが送って来た値を入れる箱があるかないかってこと。

参照:https://qiita.com/tomoharutt/items/46e6358acc8b45cd7db1

 

よし、paramsがわかったところでどっちがparamsがあるの?

結果: URl Pattern

 

さて、アドレスバーに使うのはどっち? =>  URl Pattern

5でアドレスバーURLを入れてみます。

 

5. http://localhost:3000/tweets/〇〇をアドレスバーに入れてビューを見てみる

index.html.erbの方をみたい場合

http://localhost:3000/tweets/index

new.html.erbの方がみたい場合

http://localhost:3000/tweets/new

 

 

ビューに出力されました。

あとは、new.html.erbをいじってタイトルをかける場所、本文をかける場所、それをDBに送って保存するために必要な投稿ボタンを実装していきます。

index.html.erbはタイトルを表示する、詳細を見られるようにする。ツイート新規作成できるようにnew.html.erbに飛べるようにする。

 

 

今回はアドレスバーにURLを入れてビューを出すところまでしました。

次回は新規作成フォームにタイトルと本文を入れてDBに保存するところまでやってみたいと思います。

 

---------------------------今回やったことのまとめ-----------------------------------

1. index.html.erbとnew.html.erbの作成

➡︎ app/views/に作成

2. それぞれのビュー内容を作成

3. $rails sでサーバーを立ち上げる

➡︎ アドレスバーにhttp://localhost:3000/

4. $rails routesでpathを見てみる。

➡︎  URl Patternをみる。

5. http://localhost:3000/tweets/〇〇をアドレスバーに入れてビューを見てみる

➡︎index.html.erbのビューを見たい:http://localhost:3000/tweets/index

➡︎new.html.erbのビューを見たい: http://localhost:3000/tweets/new

---------------------------------------------------------------------------------------

 

 

 

 

chapter3-3-2に続きます。 

以上です。