在我的应用程序中,我想跨 ActiveRecord 查询保持可链接性。但我并不总是能够这样做。有时我被迫使用 select - 它返回一个数组,从而破坏了可链接性。
特别是,我的应用中有一个名为 Response 的模型
响应有一个方法叫page?它返回特定 Response 对象的页码 - 一个整数
def page?
... returns the page number ...
end
方法——页面?- 需要查看应用程序中的一些其他模型才能执行。它不能 - 换句话说 - 仅依赖于 Responses 表中的数据
现在,我有一个查询 - on_page(n) - 在响应模型类中定义如下
def self.on_page(n)
select{ |m| m.page? == n }
end
问题是上面的选择返回一个数组而不是一个 ActiveRecord::Relation。这意味着我不能执行以下操作('with_scan' 是另一个 ActiveRecord 查询)
Response.on_page(3).with_scan
我可以通过更改查询完成的顺序来完成上述工作。但这只是一个黑客
在“on_page”查询中使用选择是否有替代方法?还是有不同的使用方式?任何可以保持可链接性的方式?
提前感谢您的帮助, Abhinav