Sinatraで家族用todoリストを作る


はじめに

@kirinri さんが 素敵な記事 - Qiita を投稿されているので、それに乗っかってみる

 完成画面

工夫した点

ユーザを削除した際、当該ユーザのTodoを削除

main.rb
post '/destroy_user' do
  Todos.where('users_id = ?', params[:users_id]).destroy_all
  Users.find(params[:users_id]).destroy
  redirect to('/')
end

activerecordってSQLを書かなくてもいいので素敵です。

アイテムの角を丸くする

style.css
.user_btn {
  height: 28px;
  background-color: #FFAD90;
  border-style: none;
  border-radius: 5px;
}

後半の3行最後の一行が丸くする処理です
@scivola さんに教えていただきました。

追記

ユーザを削除した場合、リロードされないのでドロップダウンリストに削除したユーザが残ってしまいます。

そのユーザでリストに追加すると例外が発生します。

main.rb
post '/create_todo' do
  begin
    Todos.create(body: params[:body],users_id: params[:users_id])
  rescue => e
  end
  redirect to('/')
end

例外処理を追加しましたが、スルーしているだけですので褒められたものではないと思います。

まとめ

  • @kirinri さんありがとうございました
  • Sinatra でtodoリストを作った
  • ActiveRecord が便利すぎる

参照したサイト
Sinatraで家族用todoリストを作る