在我们的Rails 3网站上,我们需要根据客户有权访问的产品过滤信息。
我们可以通过添加
来实现["product_id in (?)",[allowed_products_array]]
在应用程序中为每个具有product_id的类执行的每个查询,但这将是很多更改,因此需要支持很多代码,所以我在考虑以某种方式自动执行此过程
这种自动过滤器的最佳解决方案是什么?
我正在考虑为连接到产品的所有类添加全局ActiveRecord查询覆盖,但我不确定如何实现
答案 0 :(得分:3)
将default_scope用于此
http://apidock.com/rails/ActiveRecord/Base/default_scope/class
在你的情况下s.th.像
default_scope where("product_id in (?)",[allowed_products_array])
您可以将其提取到模块中 并且包含在您希望拥有此功能的每个模型中。