項目の削除の機能を追加する
手順は
1,削除を行う行を指定する釦を設置する
2,削除を行う処理を追加する
3,動作を確認する
となります
1,削除を行う行を指定する釦を設置する
各行に釦を設置し、行を指定するIDを埋め込む
app.rb
に、釦のフォームを設置する
<form method="post" action="del"> <td><input type="submit" value="削除"></td> <input type="hidden" name="id" value="<%= us.id %>"> <input type="hidden" name="_method" value="delete"> </form>
get ‘/’ do
を以下にする
get '/' do
@usrs = User.all
erb %{
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<table border>
<tr>
<th>名前</th>
<th>メールアドレス</th>
</tr>
<% @usrs.each do |us| %>
<tr>
<td><%= us.id %></td>
<td><%= us.username %></td>
<td><%= us.mailaddres %></td>
<form method="post" action="del">
<td><input type="submit" value="削除"></td>
<input type="hidden" name="id" value="<%= us.id %>">
<input type="hidden" name="_method" value="delete">
</form>
</tr>
<% end %>
<form method="post" action="new">
<tr>
<td><input type="submit" value="登録"></td>
<td><input type="text" name="username"></td>
<td><input type="text" name="mailaddres"></td>
</tr>
</form>
</table>
</body>
</html>
}
end
で、起動し削除釦を押してみる
cd cd sina rbenv shell 2.2.5 bundle exec ruby app.rb
ブラウザ(Firfox)から
http://localhost:4567/
エラーとして
Try this: delete '/del' do "Hello World" end
と、表示される
delete ‘/del’ do
を追加する
2,削除を行う処理を追加する
delete '/del' do usrs = User.find(params[:id]) usrs.destroy redirect '/' end
修正内容を追加すると
#coding: utf-8
require 'active_record'
require 'mysql2'
require 'sinatra'
require 'sinatra/reloader'
# Import files for database
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection(:development)
class User < ActiveRecord::Base
end
get '/' do
@usrs = User.all
erb %{
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<table border>
<tr>
<th>名前</th>
<th>メールアドレス</th>
</tr>
<% @usrs.each do |us| %>
<tr>
<td><%= us.id %></td>
<td><%= us.username %></td>
<td><%= us.mailaddres %></td>
<form method="post" action="del">
<td><input type="submit" value="削除"></td>
<input type="hidden" name="id" value="<%= us.id %>">
<input type="hidden" name="_method" value="delete">
</form>
</tr>
</tr>
<% end %>
<form method="post" action="new">
<tr>
<td></td>
<td><input type="text" name="username"></td>
<td><input type="text" name="mailaddres"></td>
<td><input type="submit" value="登録"></td>
</tr>
</form>
</table>
</body>
</html>
}
end
post '/new' do
usr = User.new
usr.username = params[:username]
usr.mailaddres = params[:mailaddres]
usr.save
redirect '/'
end
delete '/del' do
usrs = User.find(params[:id])
usrs.destroy
redirect '/'
end
となりる
3,動作を確認する
app.rbを起動し
cd cd sina rbenv shell 2.2.5 bundle exec ruby app.rb
ブラウザ(Firfox)から
http://localhost:4567/
により、削除釦を押してみる
対象項目の削除ができた