我有一个Phone
带checked_by
字段的模型;如果这个字段等于 1,那么我们知道这个电话是unchecked, else(>1) - checked。在管理方面,我可以查看一个列表,Phones
我需要使用 meta_search 创建一个过滤器来查看:
- 所有电话
- 已选中
- 未选中
我可以在 meta_search 中看到checked_by_greater_than
或checked_by_less_than
方法,但是如何将这些方法组合在一个选择框中?
感谢任何建议
我有一个Phone
带checked_by
字段的模型;如果这个字段等于 1,那么我们知道这个电话是unchecked, else(>1) - checked。在管理方面,我可以查看一个列表,Phones
我需要使用 meta_search 创建一个过滤器来查看:
我可以在 meta_search 中看到checked_by_greater_than
或checked_by_less_than
方法,但是如何将这些方法组合在一个选择框中?
感谢任何建议
具有范围和组成的字段。
范围:
class Phone < ActiveRecord::Base
scope :checked, lambda { |value|
!value.zero? ? checked_by_greater_than(1) : where(:checked_by => 1)
}
end
然后添加一个包含三个值的选择框,[nil, 0, 1]
作为值返回,并在您的控制器中使用该参数来应用新范围。
class PhonesController < ApplicationController
def index
# ...
@phones ||= Phone.scoped
checked_select_value = params.delete("checked_select") # here use the name of your form field
if checked_select_value.present?
@phones = @phones.checked(checked_select_value.to_i)
end
# now apply the rest of your meta-search things to the @phones
#
end
end