SinatraでWebアプリの基本を理解する(データはDB保存に変更)

以下の記事で作成したメモアプリのデータ保存先をPostgreSQLに変更しました。

knkkojt6.hatenablog.com

学んだこと✏️

1.pgのインストール
  • RubyからPostgreSQLを使用するためのgemであるpgをインストール。
2.DBに接続、テーブルを定義
3.各種機能の修正
3-1. メモ一覧の表示機能

開発環境では特に問題がないかもしれないが、PostgreSQLは必ず同じ順番でレコードを取得できるとは限らない為、明示的にORDER BYした方が良い。

def load_memos
  conn.exec('SELECT * FROM memos ORDER BY id ASC')
end
3-2. 特定のメモの表示機能
  • pg gemでのプラスホルダーは$で始まる。実際の値を割り当てることを「バインドする」という。

今回は以下を使用した。

def load_memo(id)
  result = conn.exec_params('SELECT * FROM memos WHERE id = $1;', [id])
  #<PG::Result:0x00000001088f46d0 status=PGRES_TUPLES_OK ntuples=1 nfields=3 cmd_tuples=1>
  result.tuple(0).values #["1", "メモ1", "メモ1の内容"]
end
3-3.特定のメモの表示機能とメモの編集機能
  • 最初はデータのカラムごとにインスタンス変数を定義していた。これは、カラムが増えるごとに修正が増えてしまうためNG。 @memoのようにインスタンス変数に格納するよう修正。その後、erb側にて@memo[title]のように修正。

まとめ

現在Railsの学習を進めていますが、最初は難しく感じたSinatraの学習も Rails全体のイメージを掴む上でとてもいい経験になったと感じることができました!