3

私はこの本当の挑戦に1週間取り組んでおり、ここの誰かが解決策を持っていることを願っています。

Webアプリケーションには、「顧客」モデルがあります。これは、「住所」、「連絡先」、「トランザクション」、「製品」など、他の多くのテーブルと関連しています。ユーザーは、トランザクションタイプ、製品の有効期限など、関連するモデル属性の束に基づいて顧客を検索します。また、アプリケーションの他の多くの場所では、「WiceGrid」を使用してデータを表示しています。このグリッドのフィルターと並べ替え機能が気に入っています。

うまくいくかもしれませんが、グリッドの幅は4フィートになるため、すべての検索属性を大きなWiceグリッドの別々の列に表示するのは悪い考えだと思います。

したがって、基本的に、私が達成したいのは、関連するモデル属性を含む大きな高度な検索フォームを用意することです。このフォームでは、ユーザーがWiceグリッドに表示される「Customers」を「pre_filter」(スコープ)します。この結果のWiceGridでは、「Customers」属性のみを表示するため、ユーザーはこれらの「Customer」属性でWiceGridの組み込みフィルターと並べ替え機能を使用できます。しかし、非常に残念なことに、データの特定のサブセット(スコープ)を使用するようにWiceGridに指示することはできません。さて、方法がわかりません!

したがって、私の問題を解決する方法についてのアイデアは非常にありがたいです。あなたの提案にワイスグリッドが含まれていなくても、私は行き詰まっているのでそれを考慮します。

読んでくれてありがとう

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 に答える