RubyonRails——如何使其通用,并将所有可用属性作为过滤参数?

toe95027  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(111)

我有多个控制器。我有一个像这样过滤的方法。

def filter(filtering_params)
        results = where(nil)
        filtering_params.each do |key, value|
          results = results.public_send(key, value) if value.present?
        end
        results
      end

在控制器中,我将使用过滤参数调用索引或显示API,例如如下所示。

def filtering_params
        params.slice(:status, :created_at, :id, :transaction_datetime, :portfolio_external_reference_id, :file_id, :file_name)
      end

我将在像这样从api获取时使用它。

def index
records = Module::Class.filter(filtering_params)
render json: {
        data: records
      }
end

我想写一个通用方法,它可以在我希望将特定模型中的所有可用属性作为过滤参数的情况下使用。还有比写所有属性更好的方法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题