Предположим, у меня есть простое отношение 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, у меня большие проблемы ... есть идеи об этой ситуации? Большое спасибо.