假设我有一系列教室,每个教室的属性为class_size
。我有一个搜索表单,允许用户从下拉列表中选择不同的班级大小范围来过滤。
我在[{1}}模型中的范围:
SchoolRoom
我尝试的范围接受范围的两个参数。我想创建表单select_tag,允许发送两个参数,为用户提供不同的范围,例如:(0-25,25-50,50 +)。
我也尝试过:
scope :by_class_size, -> (low, high) { where(class_size: low..high) }
这是我到目前为止所尝试的内容:
scope :by_class_size, -> (range) { where(class_size: range) }
# and
scope :by_class_size, -> (*range) { where(class_size:range.first..range.last) }
Rails控制台中的结果查询如下所示:
<%= select_tag :class_size, options_for_select([['0-25', [0, 25]], ['25-75', [25, 75]], [['75-150'], [75,150]], ['150+', [150, Float::INFINITY]]]) %>
tl; dr - 在select_tag中将一系列数字(或两个参数)作为参数值传递的简单方法是什么?