[前][次][番号順一覧][スレッド一覧]

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...      ]