【问题标题】:Include selected has_scope on ransack search filter在 ransack 搜索过滤器中包含选定的 has_scope
【发布时间】:2015-02-11 04:12:51
【问题描述】:

我正在尝试将 has_scope 和 ransack 结合起来。

这些组件中的每一个都可以自行完美运行。但是,当我尝试组合它们时,它们会相互覆盖。例如,如果我选择了一个范围,结果会被适当地过滤,但是一旦我使用 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

【问题讨论】:

    标签: ruby-on-rails ransack has-scope


    【解决方案1】:

    使用 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 中调用这些范围。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多