1対多のときの順序
has_many関係にあるときの「多」の方に順序がついている場合、つまり明細行を表示順でアクセスしたいときなどに、これまで findしてからいったん Arrayに入れて表示順で sortして、みたいなことをやってて「ほんとにみんなこんな面倒くさいことやってんのかよ」と思ってたら、案の定、そんなことはしてませんでした。
has_manyで :order指定
class Member < ActiveRecord::Base has_many :mails, :order => "idx" end
idxは mailsテーブルの表示順を保持しているフィールド名です。
Mail Load (0.010000) SELECT * FROM `mails` WHERE (`mails`.stage_id = 1) ORDER BY idx
ログをみると、ちゃんと ORDER BYがついていて安心です。