Ruby on rails 3.1 Rails 3.1,有很多关系和新记录问题

Ruby on rails 3.1 Rails 3.1,有很多关系和新记录问题,ruby-on-rails-3.1,has-many,Ruby On Rails 3.1,Has Many,假设我在模型1和模型2之间有一个简单的关系: class Model1 < ActiveRecord::Base has_many :models_2 end class Model2 < ActiveRecord::Base belongs_to :model_1 end 现在,如果我想问一下关系的大小,Rails3.0.x和Rails3.1之间有很大的区别 按照前面的示例,在Rails 3.0.x中,我得到: irb>m1.models_2.any? i

假设我在模型1和模型2之间有一个简单的关系:

class Model1 < ActiveRecord::Base
    has_many :models_2
end

class Model2 < ActiveRecord::Base
    belongs_to :model_1
end
现在,如果我想问一下关系的大小,Rails3.0.x和Rails3.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
如果我不得不改变我和你的关系,我有大麻烦了。。。对这种情况有什么想法吗?多谢各位

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