ドットインストールでタスクアプリを作ってみる【コントローラー編】

前回はモデルを作ったので、今回はコントローラーを作ります。

と言いたいところですが、用語の意味もよく理解せずに進めていたことに気がついたので、復習します。笑

 

モデル

モデルとは

データベースの情報を操作する仕組み 

 

 リファレンス▶︎モデル(model) - - Railsドキュメント

 

コントローラー

コントローラーとは

モデルからデータを受け取り、ビューにレンダリングを行わせる仕組み

リファレンス▶︎コントローラ(controller) - - Railsドキュメント

 

f:id:natsuonatsu:20160506013544p:plain

railsの構造がとてもわかりやすく載っているブログ(これ、とってもわかりやすくてありがたいです。今まで何をしていたのか頭がすっきりしました。)▶︎

www.rubylife.jp

 

ここまで実際に触って動かしてたから、

こういうの読んでちゃんと頭に入ってくる!😂

 

さてさて本題です!

 

・コントローラーを作る

rails g controlller projects

 projectsという名前のコントローラーを作りました。

そうすると

f:id:natsuonatsu:20160505110001p:plain

こんな感じで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がきちんと表示されました!

f:id:natsuonatsu:20160505111904p:plain

こんな感じに表示されました!

 

 

localhost:3000で表示されるようにする

3000/projectsにあったものを

3000(トップ画面的な)というURLで表示されるようにします。

よくあるルーティング設定らしいです。

config/routes.rb

root 'projects#index' 

を追加します。

するとlocalhost:3000で上記と同じものが反映されました!

 

(何か間違っているところがあったらご指摘いただけたら嬉しいです)