ActiveRecord単独の使い方覚書
自分用チートシート
DBにsqlite3を使った例
DBディレクトリ
を作成し、DDL文をschema.sqlite3.sqlの名前で作成 created_at、updated_atのフィールド名は、自動的に作成・更新日時が格納されるフィールドとなる。
Gemfile
にactiverecord , sqlite3のgemを登録
アプリケーション本体(sinatra)
- でactive_recordをrequireし、
- congifure ブロックにdb接続処理を書く。
db_path = DBのパス
ActiveRecord::Base.establish_connection(
adapter: ‘sqlite3’,
databese: db_path
)
モデルの作成
モデル毎にファイル(クラス)を作成 active_recordをrequire ActiveRecord::Baseを継承したclassがモデル。例えば、クラス名に対応する小文字複数形(Book <=> books)のテーブル名が自動的に関連付けされる。
アプリケーション本体(sinatra)
モデルのクラスをrequireする。相対パス指定のrequrei_relativeが良い。 require_relative ‘model/book'
モデルへの操作
- .create!(フィールド名: データ) (=insert)
- .all (= selec tall)
- .find()
- .first (= select top1) *.find_by(フィールド名 => 検索値) (条件に当てはまる最初のレコード1つを返す)
- .last (= select top1 desc)
- .wheer(:フィールド名 => 条件値) (= where句)
- .wheer(:フィールド名 => [範囲演算子]) (= select between )
- .wheer(:フィールド名 => [配列]) (= select in句 )
- インスタンス.update_attribute(:フィールド名 , 新しい値) ( インスタンスのデータ群に対してupdate句)
- インスタンス.destory (インスタンスのデータに対してdelete句)
- インスタンス.destory_all (インスタンスのデータ群に対してdelete句)