【问题标题】:auto-filtering all activerecord queries in rails app自动过滤 Rails 应用程序中的所有活动记录查询
【发布时间】:2017-07-26 18:23:13
【问题描述】:

在我们的 Rails 3 网站上,我们需要根据客户可以访问的产品过滤信息。

我们可以通过添加来做到这一点

["product_id in (?)",[allowed_products_array]] 

在应用程序中任何位置执行的每个查询中,每个类都有product_id,但这将是很多变化,因此需要支持很多代码,所以我正在考虑以某种方式自动化这个过程

这种自动过滤器的最佳解决方案是什么?

我正在考虑为连接到产品的所有类添加全局 ActiveRecord 查询覆盖,但我不知道如何实现这一点

【问题讨论】:

    标签: sql ruby-on-rails activerecord filter


    【解决方案1】:

    为此使用 default_scope

    http://apidock.com/rails/ActiveRecord/Base/default_scope/class

    在你的情况下……喜欢

    default_scope where("product_id in (?)",[allowed_products_array])
    

    您可以将其提取到模块中 并包含在您希望拥有此功能的每个模型中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多