検索 findアクション追加後にshowアクションでActiveRecord::RecordNotFoundエラーが発生する
どこのコードが悪くて、idを拾えないのかわかりません。
ご教授お願いいたします。
class PeopleController < ApplicationController
layout 'people'
def index
@msg = 'Person data.'
@data = Person.all
end
def show
@msg = "Indexe data."
@data = Person.find(params[:id])
end
def find
@msg = 'please type search word...'
@people = Array.new
if request.post? then
obj = Person.find params['find']
@people.push obj
end
end
ビュー show.html.erb
<h1>People#index</h1>
<p>
<%= @msg %>
</p>
<pre>
<table>
<tr><th>Id</th>
<td><%= @data.id %></td></tr>
<tr><th>Name</th>
<td><%= @data.name %></td></tr>
<tr><th>Age</th>
<td><%= @data.age %></td></tr>
<tr><th>Mail</th>
<td><%= @data.mail %></td></tr>
</table>
</pre>
ビュー find.html.erb
<h1>People#Find</h1>
<p>
<%= @msg %>
</p>
<table>
<%= form_tag(controller: "people", action: "find") do %>
<tr><th>FIND</th>
<td><%= text_field_tag("find") %></td>
<tr>
<td><%= submit_tag("Click") %></td>
</tr>
<% end %>
</table>
<table>
<tr>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th>Mail</th>
</tr>
<% @people.each do |obj| %>
<tr>
<td><%= obj.id %></td>
<td><%= obj.name %></td>
<td><%= obj.age %></td>
<td><%= obj.mail %></td>
</tr>
<% end %>
</table>
ルート routes.rb
get 'people/:id', to: 'people#show'
get 'people/find', to: 'people#find'
post 'people/find', to: 'people#find'
データベース db < migrate < hoge_create_people.rb
class CreatePeople < ActiveRecord::Migration[5.0]
def change
create_table :people do |t|
t.text :name
t.integer :age
t.text :mail
t.timestamps
end
end
end
ビューのキャプチャ