Rails 3.1, отношение has_many и проблема новых записей - PullRequest
1 голос
/ 17 сентября 2011

Предположим, у меня есть простое отношение has_many между model_1 и model_2:

class Model1 < ActiveRecord::Base
    has_many :models_2
end

class Model2 < ActiveRecord::Base
    belongs_to :model_1
end

Теперь я создаю экземпляр Model2 с помощью отношения:

irb>m1 = Model1.first
irb>m2 = m1.models_2.new

Теперь, если я хочу спросить о размере отношений, между Rails 3.0.x и Rails 3.1 есть огромная разница.

Следуя предыдущему примеру, в Rails 3.0.x я получаю:

irb>m1.models_2.any?
irb>false
irb>m1.models_2.size
irb>0

Это означает, что новые объекты не рассматриваются

Точно такой же запрос в Rails 3.1 :

irb>m1.models_2.any?
irb>true #OMG!!
irb>m1.models_2.size
irb>1

Итак, решение:

irb>m1.models_2.all.any?
irb>false
irb>m1.models_2.all.size
irb>0

Если мне придется изменить ВСЕ мои отношения с .all, у меня большие проблемы ... есть идеи об этой ситуации? Большое спасибо.

...