5

Rails 3.2.8 を使用して、Google アナリティクスのカスタム プロファイル ビルダーを反映する「製品セット」ビルダーを構築しています。たとえば、ユーザーは製品セットを次のように定義できます。

(カテゴリ = 'プリンター') および ((名前に 'ワイヤレス' が含まれる) または (名前に 'Wifi' が含まれる))

私の製品データは、動的な製品属性を格納するために HStore 列を使用して Postgres (9.1.4) に格納されます。Arel を使用してクエリを作成できるフォームを作成しましたが、次の要件に固執しています。
1. クエリはデータベースにシリアル化する必要があります。.to_sql 文字列を保存することはできますが、その後で行き詰まります...
2. 後で編集するために、ユーザーのフォームを再構築できる必要があります。これは、1 回限りの検索ではなく、共有クエリであるためです。

ユーザー定義のクエリを簡単に再構築できるようにシリアル化するにはどうすればよいですか?

4

2 に答える 2

0

Rails がフォームから取得するパラメーターをシリアル化することはできませんか?

ユーザーが入力したフォームからのキーと値を含むハッシュがあり、そのフォームからデータベースにクエリを実行したり、さらに処理したりするために使用するロジックに簡単にフィードバックできます。

于 2013-04-03T03:26:12.263 に答える
0
  1. 検索に関するユーザーのオプションを保存するための永続的なモデルを持つことができます。
  2. クエリを実行する必要がある場合は、ユーザーが保存したオプションを取得し、それを を使用するカスタム メソッドに渡しますransackerhstore次のように値にアクセスできます。
Arel::Node::InfixOperator.new('->>', 'hstore_column_name', Arel::Nodes::Quoted.new('key_in_hstore'))
于 2016-01-23T22:30:52.407 に答える