今回のハマりはARのacts_as_listです。
今までARにacts_as_listなんて便利なものがあるのをすっかり忘れていて、
車輪の再発明しまくりだったわけですが、
改めてアジャイル本をめくっていて、こんなのがあるのに気づき、
あ~、トホホ、という感じでこれを使うことに。
今までは、表示順を:display_orderでやってたので、
テーブル設定を変えたくないのでそのままのオーダーでacts_as_listでやろうと。
普通に実装するときは、表示順を表すカラムをpositionにしてあげれば、
後はARが勝手にやってくれる。
違うカラムを指定したいときは、:columnオプションでシンボル指定してやってください。
こんな感じ
親
has_many :childlen, :order=>:oreore_position
子
belongs_to :parent
acts_as_list :scope=>:parent_id, :column=>:oreore_position
これで、oreore_positionをキーに整列してくれる。
#2.0からオプション扱いになって、本家ドキュメントに載ってないよ~。
PR