【发布时间】:2015-06-18 07:16:33
【问题描述】:
我有 4 个使用相同范围的复选框。它用于过滤具有一定数量卧室的房屋。最后一个复选框代表“4 个及更多”卧室
<%= f.check_box(:with_bedroom_num_check, {multiple: true}, '1', nil) %>
<%= f.check_box(:with_bedroom_num_check, {multiple: true}, '2', nil) %>
<%= f.check_box(:with_bedroom_num_check, {multiple: true}, '3', nil) %>
<%= f.check_box(:with_bedroom_num_check, {multiple: true}, 'more', nil) %>
当我选中/取消选中这些复选框时,传递给范围的参数数组会发生变化。
例如
x o o o
选中第一个框时,数组为 [1]。它应该显示有 1 间卧室的房屋。
x x x x
数组是 [1, 2, 3, more]。它应该显示所有房屋。
x x o o
数组是 [1, 2]。它应该显示有 1 或 2 间卧室的房屋。
x o o x
数组是 [1, more]。它应该显示有 1、4 或更多卧室的房屋。
目前,我的范围是:
scope :with_bedroom_num_check, lambda { |flag|
where(bedroom:[flag])
}
它只适用于 1-3 间卧室。选中最后一个复选框时,如何显示所有有 4 间或更多卧室的房屋?
【问题讨论】:
标签: ruby-on-rails checkbox filterrific