Railsじゃなくてもマイグレーションを使えるStandaloneMigration
Rails等のフレームワークを使っていないプロジェクトでマイグレーションを使いたい時にはStandaloneMigrationが使える。(Ruby以外のプロジェクトでも使える。動かすにはもちろん要Rubyだけど) thu […]
WordPressのデータをActiveRecordでいじる
the_titleとかget_the_titleとかWordPressのネーミングセンスにつきあってると頭がおかしくなって死ぬ。 万事そんなかんじなので、可能であればなるべくおつきあいを遠慮したい。 WordPressの […]
:selectで取得するカラムを絞ったらパフォーマンスが倍に
最近管理しているDBサーバで継続的にスロークエリが出るようになったので、チューニングしてみたら気持ちの良い結果が出た。 結論から言うとカラム数が多いテーブルに対しては:selectで取得するカラムを絞るのがかなり有効かと […]
Railsのconsoleにて大量のレコードを少ないメモリで処理する
RailsのconsoleでActiveRecordを使って大量のレコードを処理しようとする場合、とりあえずコントローラ内に書くのと同じように以下のように打ってみると思う。 Item.all.each {|item| i […]
ActiveRecordで任意のidを持つレコードを追加する
各レコードのidの決まっているマスタを作るときなどに知っていると便利な小技。 普通ActiveRecordのidは自動で採番され、レコード作成時に指定することも後で変更することもできない。 例えば最後のレコードのidが1 […]
Amazon WebサービスのレスポンスをActiveRecordでキャッシュ
前回RailsでAmazonのWebサービスを使ってみたけれども、何かあるたびに毎回リクエストを送るのはいろいろ無駄があって忍びないのでレスポンスをキャッシュしなければならない。 ということで今回はActiveRecor […]
テストする時フィクスチャのリロード忘れに注意
Railsのコントローラのテストにおいて、フィクスチャのリロードをしないでテストを進めると期待通りの結果にならず首をかしげることになる。 初心者のハマリがちなところ。 例えば次のようなフィクスチャがあり first_fe […]
ActiveRecord の find(id) と find_by_id(id) の違い
両方とも id を指定してレコードを探すことに違いはないが、レコードが見つからなかった場合の挙動に差がある。 レコードが見つからなかったとき find(id) 例外が発生する find_by_id(id) nil が返る […]
ActiveRecordおさらい その壱 テーブル周りの規約
Railsおさらいシリーズ。 忘れてること多々なので書いて思い出そうという趣旨です。 ActiveRecordの前提 テーブルとモデルクラスが1対1で対応するO/Rマッパー。 テーブルの構造に関しては以下の規約が基本。 […]