2015-02-11 44 views
0

我试图结合has_scope和ransack。在搜索结果中包含选中的has_scope

这些组件中的每一个都完美地工作。但是,当我试图合并它们时,它们会相互覆盖。例如,如果我选择一个作用域,结果将被适当地过滤,但是一旦我使用来自ransack的search_form来进一步过滤结果,范围就会被删除。反过来也是如此。

这是如何实现的?

感谢您的帮助。

请参阅下面的我的尝试。

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 

回答

0

随着搜查的新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 

然后我能中洗劫调用这些示波器如所须。

所以要回答这个问题,使用这个新功能,范围已经集成,我们都很好。

相关问题