在我的发票模型中,我有3个不同方法定义的3个术语过滤器。查询工作正常,但一次只对查询应用过滤器。 如果我更改过滤器的顺序,则仅应用顶部过滤器,其余两个过滤器将被忽略。
以下是型号代码:
Invoice.search(self.search_options(options, qry))
def self.search_options(options, qry)
[query(qry),
status_filter(options[:status]),
state_filter(options[:invoice_state]),
office_filter(options[:current_office_id]),
aggregates
].compact.reduce(:merge)
end
def self.status_filter(status)
{filter: {term: {invoice_status: status}}}
end
def self.state_filter(state)
{filter: {term: {state: state}}}
end
def self.office_filter(current_office_id)
{filter: {term: {office_id: current_office_id}}}
end
我如何一次应用所有3个过滤器?