不使用任何方法或使用`all()`生成ActiveRecord :: Relation

约书亚·品特

看似简单的问题。

我正在尝试ActiveRecord::Relation从模型中构建对象,而无需使用where()例如:

@people = Person

@people.where( status: 'active' ) if params(:active)
@people.where( is_smoker: true )  if params(:smokers)

return @people

您会看到,如果在参数中未设置activesmokers,则@people只是模型,而不是ActiveRecord::Relation

我可以all在结尾处提出,return @people但是必须有更好的方法。

有什么想法吗?

吉治先生

您可以使用以下.scoped方法:

@people = Person.scoped

@people.where( status: 'active' ) if params(:active)
@people.where( is_smoker: true )  if params(:smokers)

return @people

还有.unscoped一种方法基本上执行相同的操作,但忽略所有default_scopes定义的方法。


Rails 4:.scoped不推荐使用该方法,请参阅@FrederickCheung的答案

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

RoR使用undestroy_all扩展ActiveRecord :: relation

来自分类Dev

Order an ActiveRecord relation object

来自分类Dev

Rails ActiveRecord_Relation

来自分类Dev

测试ActiveRecord :: Relation的相等性

来自分类Dev

ActiveRecord :: Relation打印特定属性

来自分类Dev

获取数组而不是ActiveRecord:Relation

来自分类Dev

ActiveRecord_Relation 对象的大小

来自分类Dev

ActiveRecord :: Relation对象如何调用类方法

来自分类Dev

#<ActiveRecord :: Relation []>的未定义方法'authenticate'

来自分类Dev

Rspec期望方法接收ActiveRecord :: Relation

来自分类Dev

#<ActiveRecord :: Relation []>的未定义方法'id'

来自分类Dev

ActiveRecord :: Relation对象如何调用类方法

来自分类Dev

Rspec期望方法接收ActiveRecord :: Relation

来自分类Dev

ActiveRecord :: Relation :: ActiveRecord_Relation_Link:Class的未定义方法'model_name'

来自分类Dev

ActiveRecord和ActiveRecord :: Relation对象之间的区别

来自分类Dev

ActiveRecord和ActiveRecord :: Relation对象之间的区别

来自分类Dev

Rails从ActiveRecord :: Relation查询中删除模型

来自分类Dev

ActiveRecord :: Relation转换为哈希缓慢

来自分类Dev

RoR从ActiveRecord :: Relation中获取版权

来自分类Dev

如何编写联接Rails ActiveRecord_Relation?

来自分类Dev

将ActiveRecord:Relation转换为Java数组

来自分类Dev

Rspec模拟ActiveRecord :: Relation而不是类对象

来自分类Dev

展平ActiveRecord :: Relation实例的数组

来自分类Dev

ActiveRecord :: Relation create vs find_or_create_by

来自分类Dev

规范中引用ActiveRecord :: Relation对象的约定

来自分类Dev

未在 ActiveRecord_Relation 上输入块

来自分类Dev

使用Relation Laravel 5.1创建记录

来自分类Dev

Rails 4 Relation#all不推荐使用

来自分类Dev

#<Calendar :: ActiveRecord_Relation的未定义方法'id'

Related 相关文章

  1. 1

    RoR使用undestroy_all扩展ActiveRecord :: relation

  2. 2

    Order an ActiveRecord relation object

  3. 3

    Rails ActiveRecord_Relation

  4. 4

    测试ActiveRecord :: Relation的相等性

  5. 5

    ActiveRecord :: Relation打印特定属性

  6. 6

    获取数组而不是ActiveRecord:Relation

  7. 7

    ActiveRecord_Relation 对象的大小

  8. 8

    ActiveRecord :: Relation对象如何调用类方法

  9. 9

    #<ActiveRecord :: Relation []>的未定义方法'authenticate'

  10. 10

    Rspec期望方法接收ActiveRecord :: Relation

  11. 11

    #<ActiveRecord :: Relation []>的未定义方法'id'

  12. 12

    ActiveRecord :: Relation对象如何调用类方法

  13. 13

    Rspec期望方法接收ActiveRecord :: Relation

  14. 14

    ActiveRecord :: Relation :: ActiveRecord_Relation_Link:Class的未定义方法'model_name'

  15. 15

    ActiveRecord和ActiveRecord :: Relation对象之间的区别

  16. 16

    ActiveRecord和ActiveRecord :: Relation对象之间的区别

  17. 17

    Rails从ActiveRecord :: Relation查询中删除模型

  18. 18

    ActiveRecord :: Relation转换为哈希缓慢

  19. 19

    RoR从ActiveRecord :: Relation中获取版权

  20. 20

    如何编写联接Rails ActiveRecord_Relation?

  21. 21

    将ActiveRecord:Relation转换为Java数组

  22. 22

    Rspec模拟ActiveRecord :: Relation而不是类对象

  23. 23

    展平ActiveRecord :: Relation实例的数组

  24. 24

    ActiveRecord :: Relation create vs find_or_create_by

  25. 25

    规范中引用ActiveRecord :: Relation对象的约定

  26. 26

    未在 ActiveRecord_Relation 上输入块

  27. 27

    使用Relation Laravel 5.1创建记录

  28. 28

    Rails 4 Relation#all不推荐使用

  29. 29

    #<Calendar :: ActiveRecord_Relation的未定义方法'id'

热门标签

归档