Ruby on rails “包含选定内容”在搜索过滤器上具有\u作用域

Ruby on rails “包含选定内容”在搜索过滤器上具有\u作用域,ruby-on-rails,ransack,has-scope,Ruby On Rails,Ransack,Has Scope,我正试图将范围和搜索结合起来 这些组件中的每一个都能自己完美地工作。但是,当我尝试合并它们时,它们会相互覆盖。例如,如果我选择了一个范围,结果会被适当地过滤,但是一旦我使用来自ransack的搜索表单进一步过滤结果,范围就会被删除。反之亦然 如何做到这一点 谢谢你的帮助 请看下面我的尝试 has_scope :upward_trending, :type => :boolean has_scope :downward_trending, :type => :boolean has_s

我正试图将范围和搜索结合起来

这些组件中的每一个都能自己完美地工作。但是,当我尝试合并它们时,它们会相互覆盖。例如,如果我选择了一个范围,结果会被适当地过滤,但是一旦我使用来自ransack的搜索表单进一步过滤结果,范围就会被删除。反之亦然

如何做到这一点

谢谢你的帮助

请看下面我的尝试

has_scope :upward_trending, :type => :boolean
has_scope :downward_trending, :type => :boolean
has_scope :all, :type => :boolean

def index
    @has_scope = apply_scopes(Product).all
    @q = @has_scope.search(params[:q])
    @products = apply_scopes(@q.result.page(params[:page]).per(30))
end

有了Ransack新的ransackable_scopes功能,就不再需要has_scope了

我可以这样做:

def self.ransackable_scopes(auth_object = nil)
    [:upward_trending, :downward_trending, :seven_days, :thirty_days, :six_months, :twelve_months, :all_time]
end
然后我可以根据需要调用Ransack中的这些示波器

所以为了回答这个问题,有了这个新功能,作用域已经集成了,我们都很好