我有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个或更多卧室的房子?
答案 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