Rails4:从模型或已链接的关系中获取ActiveRecord :: Relation

本杰

我正在为ActiveRecord模型编写模块。总之它是可以调用一系列的方法wherejoinorder语句。在编写本文时,这些语句是未知的,因此无法使用范围。到目前为止,它运行良好,但是我想改进一点。

这是我的方法:

def filter
  rel = respond_to?(:filter_scope) ? filter_scope : where(1)
  # Do other stuffs with `rel`
  # ...
  rel
end

它首先调用(filter_scope如果已定义),或者ActiveRecord::Relation从目标模型获取一个为此,我使用where(1)强制模型返回关系对象的方法。这种运作良好,每当我打电话filter直接在模型上(User.filter)或关系(User.order(:name).filterUser.my_scope.filter.order(:age)等...)

但是使用时会where(1)有点脏。在Rails 3中,我会all改用它,但是在Rails 4中,它会贬值。关于如何改善这一点的任何想法吗?

提前致谢


注意:我不能用代替where(1)self因为有可能self从中返回filterUser.filter成为一个类,因此不能用作查询对象。

房子9

在Rails 3中,我将全部使用它,但是在Rails 4中它已贬值。

我不认为all它已贬值,它曾经返回一个Array(rails 3),现在返回了一个,ActiveRecord::Relation因此您应该可以将其用于链接查询。

参见http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html#method-i-all

返回一个ActiveRecord :: Relation作用域对象。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

Rails ActiveRecord_Relation

来自分类Dev

获取数组而不是ActiveRecord:Relation

来自分类Dev

RoR从ActiveRecord :: Relation中获取版权

来自分类Dev

Order an ActiveRecord relation object

来自分类Dev

Rails 4:如何访问ActiveRecord_Relation-Object的属性?

来自分类Dev

如何编写联接Rails ActiveRecord_Relation?

来自分类Dev

测试ActiveRecord :: Relation的相等性

来自分类Dev

ActiveRecord :: Relation打印特定属性

来自分类Dev

ActiveRecord_Relation 对象的大小

来自分类Dev

从Rails中的ActiveRecord_Relation中删除元素

来自分类Dev

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

来自分类Dev

通过与Rails上的Geocoder的关联进行搜索,无法访问ActiveRecord :: Relation :: ActiveRecord_Relation错误

来自分类Dev

通过与Geocoder on Rails的关联进行搜索,无法访问ActiveRecord :: Relation :: ActiveRecord_Relation错误

来自分类Dev

如何获取为其创建ActiveRecord :: Relation实例的ActiveRecord类?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Rails 4中的Relation.all弃用

来自分类Dev

Laravel查询关系模型:: has('relation')不起作用

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Rspec期望方法接收ActiveRecord :: Relation

来自分类Dev

ActiveRecord :: Relation转换为哈希缓慢

来自分类Dev

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

来自分类Dev

将ActiveRecord:Relation转换为Java数组

来自分类Dev

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

来自分类Dev

展平ActiveRecord :: Relation实例的数组

来自分类Dev

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

来自分类Dev

ActiveRecord :: Relation create vs find_or_create_by

Related 相关文章

  1. 1

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

  2. 2

    Rails ActiveRecord_Relation

  3. 3

    获取数组而不是ActiveRecord:Relation

  4. 4

    RoR从ActiveRecord :: Relation中获取版权

  5. 5

    Order an ActiveRecord relation object

  6. 6

    Rails 4:如何访问ActiveRecord_Relation-Object的属性?

  7. 7

    如何编写联接Rails ActiveRecord_Relation?

  8. 8

    测试ActiveRecord :: Relation的相等性

  9. 9

    ActiveRecord :: Relation打印特定属性

  10. 10

    ActiveRecord_Relation 对象的大小

  11. 11

    从Rails中的ActiveRecord_Relation中删除元素

  12. 12

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

  13. 13

    通过与Rails上的Geocoder的关联进行搜索,无法访问ActiveRecord :: Relation :: ActiveRecord_Relation错误

  14. 14

    通过与Geocoder on Rails的关联进行搜索,无法访问ActiveRecord :: Relation :: ActiveRecord_Relation错误

  15. 15

    如何获取为其创建ActiveRecord :: Relation实例的ActiveRecord类?

  16. 16

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

  17. 17

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

  18. 18

    Rails 4中的Relation.all弃用

  19. 19

    Laravel查询关系模型:: has('relation')不起作用

  20. 20

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

  21. 21

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

  22. 22

    Rspec期望方法接收ActiveRecord :: Relation

  23. 23

    ActiveRecord :: Relation转换为哈希缓慢

  24. 24

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

  25. 25

    将ActiveRecord:Relation转换为Java数组

  26. 26

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

  27. 27

    展平ActiveRecord :: Relation实例的数组

  28. 28

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

  29. 29

    ActiveRecord :: Relation create vs find_or_create_by

热门标签

归档