草庐IT

CollectionProxy

全部标签

ruby-on-rails - ActiveRecord::Associations::CollectionProxy 从哪里获取.each 实例方法?

假设我有模型Topics和Posts,其中Topichas_many:posts和Postbelongs_to:topic。此时我的数据库中已经有了一些东西。如果我进入Rails控制台并输入Topic.find(1).posts我相信我得到了一个CollectionProxy对象。=>#]>我可以对此调用.each以获得枚举器对象。=>#]:each>我对CollectionProxy如何处理.each感到困惑。我意识到它在某些时候是继承的,但我一直在阅读API文档,他们并没有说得很清楚CollectionProxy是从什么继承的,除非我遗漏了一些明显的东西。Thispage似乎并没有

ruby-on-rails - CollectionProxy 与 AssociationRelation

我想知道ActiveRecord::Associations::CollectionProxy之间的区别和ActiveRecord::AssociationRelation.classVehicle如果我这样做:v=Vehicle.newv.wheels#=>#v.wheels.all#=>#我不知道它们之间有什么区别,为什么要这样实现? 最佳答案 ActiveRecord::Relation是在转换为查询并执行之前的简单查询对象,另一方面,CollectionProxy稍微复杂一些。首先你得到关联扩展,你可能看到了类似这样的东西,

ruby-on-rails - 从 Rails 4.1.4 更新到 4.2.0 后,AR CollectionProxy 上的 "first!"引发 "undefined method [] for nil"

我开始从Rails4.1.4升级到Rails4.2.0。好像是第一!不再支持某些事件记录关联。first!(在ActiveRecord::Associations::CollectionProxy上)发生了什么导致它现在失败?如何修复该行为,使其像在4.1.4中一样工作?rails4.1:(byebug)user.organization.registration_codes#]>(byebug)user.organization.registration_codes.first!#rails4.2:(byebug)user.organization.registration_code

ruby-on-rails - 如何从 ActiveRecord CollectionProxy 获取值?

我在遍历集合属性以获取值时遇到问题。这是我的代理,#]>我希望能够像这样遍历代理中的所有对象。my_collection_proxy.eachdo|c|c.nameend但这似乎不起作用。如何获取代理中每个名称的值?输出:@order.products.eachdo|a|a.nameend=>[#,#]我希望我的输出看起来像什么:=>test=>aggg 最佳答案 如果你想把所有的名字放到一个数组中,你应该使用Enumerable#collect:names=@order.products.collect(&:name)