Rails 如何一个 scope 中 使用另一个 scope?

u1450154824 · 2016年05月11日 · 最后由 u1453357893 回复于 2016年05月11日 · 2314 次阅读

比如我有

scope :type_one, -> { where(type:1) }
scope :type_two, -> { where(type:2) }
scope :type_all, -> { where(type:[1,2]) }

可以有这样的类似写法吗?

scope :type_all, :type_one,:type_two

Model.type_one.type_two

#1 楼 @linyunjiang 谢谢,但是我想知道有没有我说的那一种写法。

3 楼 已删除
4 楼 已删除

自己写个方法就是了。

where(type:[1,2]) 是获取 type 为 1 或者 2 的数据,type_one.type_two 是获取 type 同时为 1 和 2 的数据,两者不一样。还没见过 scope :type_all, :type_one,:type_two 类似的写法。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号