在Rails中构造查询

时间:2018-12-23 06:38:47

标签: ruby-on-rails postgresql activerecord ruby-on-rails-5

我需要在后端处理过滤器数据并返回符合那些过滤条件的人员。过滤条件类似于((filter A or filter B or filter C) and (filter D or filter E)) 过滤条件类似于“名称包含'名称'”。我有每个过滤条件的范围,就像 scope :contains,-> (params){ where('name ilike :name', name: params[:name]}

我打算用union构造查询以对过滤器进行“或”运算。我计划使用to_sql获得每个过滤器User.contains(params)的结果。并使用SQL联合将所有过滤器与或条件组合,并使用活动记录merge组合和条件。 然后使用ActiveRecord::Base.connection.execute(sql)执行原始查询。

还有其他更好的方法来处理此类过滤器吗?

0 个答案:

没有答案