Rails 3.2にアップグレードして以来、私は奇妙な問題に遭遇しています。ネストされたオブジェクトとコレクションのサイズ
私のアプリケーションはnested_formsで管理オブジェクトをいくつか持っていますが、私は新しいネストされたオブジェクトを構築した後、コレクションのサイズに到達しようとすると、ネストされたオブジェクトは、カウント中に取り込まれます。この場合、元の場合
:
1.9.3p0 :004 > e = Expense.last
Expense Load (22.6ms) (...)
=> #<Expense id: 1, (...)
1.9.3p0 :005 > e.comments.size
(0.3ms) SELECT COUNT(*) (...)
=> 0
1.9.3p0 :006 > e.comments.build
=> #<Comment id: nil, content: nil, commentable_id: 1, commentable_type: "Expense", created_at: nil, updated_at: nil, creator_id: nil>
1.9.3p0 :007 > e.comments.size
=> 1
、私はComment
オブジェクトがまだ保存されていないので、e.expense.size
は0を返すことを期待しています。
アップグレードしてからではないかもしれません。以前は気づかなかったかもしれません。事実、私は 'e.commentsでのコメントのために'を呼び出すときにこの動作に入ります、そして今構築されたコメントはまだ保存されていないので、エラーも発生します – AkyRhO