今日もタスクアプリを作成していきます。 p1, p2 の処理を追加していきます。
パスの設定
下記ファイルを編集します。
taskapp/app/views/projects/index.html.erb
<h1>Projects</h1> <ul> <% @projects.each do |project| %> <li><%= link_to project.title, project_path(project.id) %></li> <% end %> </ul>
project.titleにパスを設定しているのですが、ここで設定している
project_path(project.id)の部分はどこに定義されているかというと、
下記コマンドを実行すれば分かります。
$ rake routes > Prefix Verb URI Pattern Controller#Action > projects GET /projects(.:format) projects#index > POST /projects(.:format) projects#create > new_project GET /projects/new(.:format) projects#new >edit_project GET /projects/:id/edit(.:format) projects#edit > project GET /projects/:id(.:format) projects#show > PATCH /projects/:id(.:format) projects#update > > PUT /projects/:id(.:format) projects#update > DELETE /projects/:id(.:format) projects#destroy > root GET / projects#index
上記のproject GET /projects/:id(.:format) projects#show
の部分が設定されていることになります。
showアクションの追加
projects#showとあるので、controllerにshowメソッドを追加する必要があります。
taskapp/app/controllers/projects_controller.rb
class ProjectsController < ApplicationController def index @projects = Project.all end # --追加 def show @project = Project.find(params[:id]) end # --追加 end
また、同様にビューの作成も必要となります。
ここではtitleの表示のみを行ってみます。
taskapp/app/views/projects/show.html.erb
<h1><%= @project.title %></h1>
うまく表示されました。