0

我有一个Phonechecked_by字段的模型;如果这个字段等于 1,那么我们知道这个电话是unchecked, else(>1) - checked。在管理方面,我可以查看一个列表,Phones我需要使用 meta_search 创建一个过滤器来查看:

  • 所有电话
  • 已选中
  • 未选中

我可以在 meta_search 中看到checked_by_greater_thanchecked_by_less_than方法,但是如何将这些方法组合在一个选择框中?

感谢任何建议

4

1 回答 1

1

具有范围和组成的字段。

范围:

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
于 2012-09-28T08:31:04.917 回答