ドットインストールでタスクアプリを作ってみる【コントローラー編】
前回はモデルを作ったので、今回はコントローラーを作ります。
と言いたいところですが、用語の意味もよく理解せずに進めていたことに気がついたので、復習します。笑
モデル
モデルとは
データベースの情報を操作する仕組み
リファレンス▶︎モデル(model) - - Railsドキュメント
コントローラー
コントローラーとは
モデルからデータを受け取り、ビューにレンダリングを行わせる仕組み
リファレンス▶︎コントローラ(controller) - - Railsドキュメント
railsの構造がとてもわかりやすく載っているブログ(これ、とってもわかりやすくてありがたいです。今まで何をしていたのか頭がすっきりしました。)▶︎
ここまで実際に触って動かしてたから、
こういうの読んでちゃんと頭に入ってくる!😂
さてさて本題です!
・コントローラーを作る
rails g controlller projects
projectsという名前のコントローラーを作りました。
そうすると
こんな感じでappの中にcontrollerフォルダができていたりファイルが増えていたりしていて、
この色付きのファイルをこれから書き換えていきます。
ですがその前に、ちゃんとローカル環境に表示されるように
ルーティングの設定を行います。
・ルーティングの設定
configの中のroute.rbを開きます。
(config:Railsで使うデータベースの設定を記述)▶︎設定ファイル(config) - - Railsドキュメント
そこに
resourses :projects
を追加。
これは、projectに関するURLみたいなものを自動生成してくれるものらしいです。
そしてターミナルに
rake routes
で今のルーティング設定がちゃんとできていたのか確認します。
そうするとこんなのが出てきます。
Prefix Verb URI Pattern Controller#Action
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
例えば赤字のところは
今作ったprojectの一覧を表示させたいなら
projectsのindexに書き込みなさいっていうことみたい。(?)
後々何か新しくページを作ったりするときに
これを参考にするみたい!
・project(タイトルがp1のやつ)をサイトに表示させる
taskapp/views/の中に
index.html.erbというファイルを作ります。
中身は
<h1>projects</h1><ul><% @projects.each do |project| %><li><%= project.title %></li><% end %></ul>
リストにprojectを呼び出しています。
そうしてrails sしてlocalhost:3000/projectsを確認すると
前回入れておいたp1がきちんと表示されました!
こんな感じに表示されました!
・localhost:3000で表示されるようにする
3000/projectsにあったものを
3000(トップ画面的な)というURLで表示されるようにします。
よくあるルーティング設定らしいです。
config/routes.rb
に
root 'projects#index'
を追加します。
するとlocalhost:3000で上記と同じものが反映されました!
(何か間違っているところがあったらご指摘いただけたら嬉しいです)