タグ

activerecordに関するyuisekiのブックマーク (2)

  • SinatraからActiveRecord 3を使う(4) 比較演算が簡単になるMetaWhere - アインシュタインの電話番号

    前回のバリデーションに引き続き、今回はActiveRecord 3を使った際のwhereメソッド内での比較演算が簡単になるgemのMetaWhereについて調べたのでメモ。ぶっちゃけ今回はSinatraはあんまり関係なくて、ActiveRecord 3の使い方が便利になる話。 お題 updated_atカラムの中で、今から1時間前よりも古い日時のレコードだけ抽出せよ このお題をクリアするためのActiveRecord 3のwhereメソッドの書き方がよくわからなかった。というか、今もわかってない。たぶんSQL文を直接書いて「updated_at < 1時間前の数値」的な感じで書くんだろうけど…と調べているときに、タイトルにもある通りの比較演算が簡単になるMetaWhereの存在を知ってしまった。ので、whereでの書き方がよく分からないまま、このgemを使って解決した。 比較演算が簡単にな

    SinatraからActiveRecord 3を使う(4) 比較演算が簡単になるMetaWhere - アインシュタインの電話番号
  • トランザクション - うなの日記

    transactionを利用して、一連の更新処理をアトミックに実行します。 トランザクションを使う テーブル定義: CREATE TABLE kittens ( id int(11) NOT NULL auto_increment PRIMARY KEY, name VARCHAR(255), color VARCHAR(255), age int(4) ) TYPE = InnoDB ; サンプル: # 接続先サーバーの設定は省略 # ロガーの設定/ログを"debug.txt"に出力する。 ActiveRecord::Base.logger = Logger.new("debug.txt") class Kitten < ActiveRecord::Base def to_s return name end end # transaction を利用。 # ブロック実行後に変更がコミット

    トランザクション - うなの日記
  • 1