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

rails:3486

From: Andy Matsubara <andymatsubara@g...>
Date: Fri, 1 Oct 2010 15:06:34 +0900
Subject: [rails:3486] Re: habtm で追加した順序は保障されるか?

そもそもidが増えていくことは保証されていないと思います。実際auto incrementになっていて
途中に空き番があったときにそこを使われることはありますし。
追加順にしたいのならタイムスタンプなどのフィールドを使って並べる必要があります。

Andy

2010/10/1 naopontan <naopontan@g...>:
> こんにちは。
>
> 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/
>

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