3

我正在为这个真正的挑战工作一周,希望这里有人能找到解决方案。

在 Web 应用程序中,我有一个“客户”模型,它与许多其他表相关,例如“地址”、“联系人”、“交易”、“产品”等。现在我想允许我的用户根据一堆相关的模型属性搜索客户,比如交易类型、产品有效期等。另外,在应用程序的很多其他地方,我们使用“Wice Grid”来显示数据,并且我们喜欢这个网格的过滤器和排序功能。

即使它可能有效,我认为在大 Wice 网格的单独列中显示所有搜索属性也是一个坏主意,因为网格将是 4 英尺宽!

所以基本上,我想要实现的是拥有一个包含相关模型属性的大型高级搜索表单,其中用户将 kind_of “pre_filter”(范围)“Customers”以显示在 Wice 网格中。在这个结果 Wice Grid 中,我只会显示“客户”属性,因此用户将能够在这些“客户”属性上使用 Wice Grid 的内置过滤器和排序功能。但非常不幸的是,我们无法告诉 Wice Grid 使用特定的数据子集(范围)。好吧,我找不到怎么做!

因此,任何想法如何解决我的问题将不胜感激。即使您的建议不包括 Wice Grid,我也会考虑它,因为我处于死胡同。

非常感谢阅读

4

1 回答 1

1

听起来Ransack很适合这里。它允许您进行高级搜索查询(包括特定模型上的关系)。

我以前从未使用过 Wice Grid,但通过浏览文档应该可以将 Ransack 查询的结果直接传递到initialize_grid.

一个例子:

class CustomersController < ApplicationController
  def index
    @customers = Customer.search(query)
    @customers_grid = initialize_grid(@customers.result)
  end

  private

  def query
    params[:query]
  end
end

我建议阅读 Ransack 的文档,它有很好的文档记录。

于 2013-08-15T21:36:48.563 回答