項目の削除の機能を追加する
手順は
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/
により、削除釦を押してみる
対象項目の削除ができた