前回の続きで、今日もタスクアプリをがしがし作成していきます。
前回記事はコチラから。
taxa-program.hatenablog.com
コントローラにアクションを作成
前回記事で、コントローラの作成は終了しているので、
今日はコントローラにアクションを追加していきます。
下記ファイルを編集しましょう。
taskapp/app/controllers/projects_controller.rb
class ProjectsController < ApplicationController # --追加 def index #変数にproject一覧を設定 @projects = Projects.all end # --追加 end
indexという関数を作成し、@を付与した変数を作成。
この@をつけた変数は、後のビューで使用できます。
projects.all とすることで、projectの一覧が設定されます。
ビューの作成
次にコントローラに設定したindexメソッドに対応する
ビュー(HTMLファイル)を作成します。
コントローラとビューの仕組みに関してはこちらの記事を参照して下さい。
taxa-program.hatenablog.com
下記フォルダ内にindex.html.erbファイルを作成。
taskapp/app/views/projects/index.html.erb
これがビュー(HTML)ファイルになります。
中身はこんな感じで、projectsの中身をループさせ、
title一覧を表示させています。
<h1>projects</h1> <ul> <!-- コントローラで設定した@projectsの中身をループさせる --> <% @projects.each do |project| %> <!-- projectのtitleを表示する --> <li><%= project.title %></li> <% end %> </ul>
ailsサーバを起動してアクセス
ここまできたら、いつも通りにサーバを起動させて、アプリを実行してみます。
$ rails s
前回入力した、p1とp2が出力されました!
ルーティングの設定
最後にメイン画面へのルーティングを設定してみます。
今は
http://localhost:3000/projects
というURLで該当画面へアクセスしましたが、この画面がメイン画面になるので、
http://localhost:3000
というURLでアクセスできるように、ルーティングの設定をします。
taskapp/config/routes.rb ファイルを下記のように修正
Rails.application.routes.draw do # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html resources :projects root 'projects#index' #rootページを設定 end
そうすると、下記のようにprojectsまでパス指定せずとも、メイン画面が表示されます。