多个复选框使用filterrific进行过滤

时间:2015-06-17 21:59:35

标签: ruby-on-rails checkbox filterrific

我有4个使用相同范围的复选框。它用于过滤一定数量卧室的房子。最后一个复选框代表“4和更多”卧室

DataSet

当我选中/取消选中这些复选框时,传递给范围的参数数组会发生变化。

例如

x o o o

选中第一个框时,数组为[1]。它应该显示有一间卧室的房子。

x x x x

数组是[1,2,3,更多]。它应该显示所有房屋。

x x o o

数组是[1,2]。它应该显示有1或2间卧室的房子。

x o o x

数组是[1,更多]。它应该显示有1个,4个或更多卧室的房子。

目前,我的范围是:

SqlDataAdapter.Fill()

仅适用于1-3间卧室。如果选中最后一个复选框,我怎么能显示所有有4个或更多卧室的房子?

1 个答案:

答案 0 :(得分:0)

在您的范围内尝试以下内容。在使用之前' 4'而不是更多'作为最后一个复选框的值。

   ([1, 2, 3, 4] - flag).inject(all) do |x, y|
      if y == 4
        x.where.not("with_bedroom_num_check >= ?", y)
      else
        x.where.not(with_bedroom_num_check: y)
      end
    end