rails:3484
From: naopontan <naopontan@g...>
Date: Fri, 1 Oct 2010 14:35:04 +0900
Subject: [rails:3484] habtm で追加した順序は保障されるか?
こんにちは。
User と Entry が has_and_belongs_to_many(habtm)で多対多の関係です。
この場合、
@entry.users << @taro
@entry.users << @jiro
の順番は保障されるのでしょうか?
class Entry < ActiveRecord::Base
has_and_belongs_to_many :users, :order => "id ASC", :uniq => true
end
class User < ActiveRecord::Base
has_and_belongs_to_many :entries
end
勝手に保障されると思っていて、逆転現象の不具合が出たので
「:order => "id ASC"」がバグだ!って思ったんですけど、
以下のテストを書いてみたら、:order を指定してもしなくてもテストが通ってしまいます。
あれ?何で?って感じです。
def test_my_group_order
entry = entries(:entry1)
entry.users.clear
entry.users << users(:taro)
entry.users << users(:jiro)
assert_equal [users(:taro), users(:jiro)], entry.users
entry.users.clear
entry.users << users(:jiro)
entry.users << users(:taro)
assert_equal [users(:jiro), users(:taro)], entry.users
end
この辺りのご助言頂ければ幸いです。
--
ML: rails@r...
使い方: http://QuickML.com/
-> 3484 2010-10-01 07:35 [naopontan@g... ] habtm で追加した順序は保障されるか? 3486 2010-10-01 08:06 ┗[andymatsubara@g... ] 3487 2010-10-02 03:45 ┗[naopontan@g... ]