【Sinatraで運動記録アプリ③】Flashメッセージ・session

【Sinatraで運動記録アプリ③】Flashメッセージ・session

こんにちは、Mako(@makokamiya)です。

今回は、SinatraでFlashメッセージとsessionをを使えるようにする方法をまとめていきます。

ソースコード:https://github.com/mako4kamiya/undouno_kiroku_app
アプリURL :https://undouno-kiroku-app.herokuapp.com/

ちょっとファイル整理

いままではapp.rbにルーティングを書いていましたが、

モデルのバリデーションや、メソッドなどを書きたいなと思ったので、

route.rb、models.rb、helpers.rbとファイルをわけました!

  • route.rb : ルーティングを書く。ルーティング以外はここに書きたくない。
  • models.rb : userモデルや他のモデルのバリデーションを書く。
  • helpers.rb : route.rbやerbに使うメソッドはここに書く。ここにテキストを入力

SinatraでFlashメッセージ

Flashメッセージとは、「ログインに成功しました!」や「登録されていません」などというな、簡易的なメッセージを表示させる機能です。

Railsでは、flash[:danger] = “Please log in.”のように文字列を代入すると使えるんですが、Sinatraでは使えませんでした。

Sinatraで実装するには、Gemを追加します。

gem 'sinatra-flash'
flash[:danger] = "登録されていません。"
<% flash.each do |message_type, message| %>
   <div class="<%="alert alert-#{message_type}"%>"><%= message %></div>
<% end %>

Sinatraでsessionを使えるようにする

Sinatraでsessionを使うには、下記を追加することで使えるようになります!

enable :sessions

まとめ

最後まで読んでくれてありがとうございました!

今回はちょっとさらっとまとめちゃったので、

ぜひソースコードをお読みくださいw

ソースコード:https://github.com/mako4kamiya/undouno_kiroku_app
アプリURL :https://undouno-kiroku-app.herokuapp.com/

間違った箇所があればコメントで教えていただけると幸いです(๑◔‿◔๑)