ActiveRecord与范围的关系

闪电

例如,使用Rails 3.2 / Ruby 1.9,我有以下类:

class Foo
  has_many :bars
end

class Bar
  scope :active, where(:active=>true)
  # also tried
  # scope :active, lambda{where(:active=>true)}
  # scope :active, -> {where(:active=>true)}
end

现在,如果我有一个Foo(f)的实例,并且这样做了f.bars,则可以得到预期的ActiveRecord :: Relation实例。但是由于某种原因f.bars.active,我得到active了关系对象的未定义方法(我将购买此对象,因为作用域在Bar类上)。f.bars.where(:active=>true)没问题。我想我的问题是:

  1. 这到底是怎么回事?
  2. 如何使用活动范围来达到期望的结果?
注入

您必须先将作用域语句包装在lambda中,然后才能正常工作:

scope :active, -> { where(:active=>true) }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ActiveRecord与范围的关系

来自分类Dev

订购ActiveRecord关系对象

来自分类Dev

ActiveRecord关系错误

来自分类Dev

ActiveRecord:关系总数

来自分类Dev

ActiveRecord:存在属性的范围

来自分类Dev

否定ActiveRecord查询范围

来自分类Dev

基于小时的 ActiveRecord 范围

来自分类Dev

如何找回ActiveRecord而不是ActiveRecord关系?

来自分类Dev

雄辩的关系查询范围

来自分类Dev

雄辩的关系查询范围

来自分类Dev

更新范围中的关系?

来自分类Dev

Laravel SearchByKeyword关系范围?

来自分类Dev

如何探索ActiveRecord关系的结果?

来自分类Dev

ActiveRecord消息的适当关系

来自分类Dev

ActiveRecord类方法/关系自身

来自分类Dev

Rails视图与ActiveRecord关系的问题

来自分类Dev

如何探索ActiveRecord关系的结果?

来自分类Dev

寻找对我的ActiveRecord关系的评论

来自分类Dev

多对多关系 ActiveRecord::HasManyThroughAssociationNotFoundError

来自分类Dev

Rails ActiveRecord查询日期范围

来自分类Dev

“寿命”关系和实际范围

来自分类Dev

Rails:ActiveRecord关联返回零关系

来自分类Dev

Yii2 ActiveRecord统计关系

来自分类Dev

建立ActiveRecord关系而不执行查询

来自分类Dev

activerecord关系子句中的where子句

来自分类Dev

具有关系的ActiveRecord查询

来自分类Dev

Rails的采摘性能与ActiveRecord关系

来自分类Dev

Ruby on Rails ActiveRecord关系无法正常工作?

来自分类Dev

从 WHERE NOT EXISTS 查询返回 ActiveRecord 关系