5

我正在使用 Rails 3.2.8 构建一个反映 Google Analytics 的自定义配置文件构建器的“产品集”构建器。例如,用户可以如下定义产品集:

(类别='打印机')和((名称包含'无线')或(名称包含'Wifi'))

我的产品数据存储在 Postgres (9.1.4) 中,使用 HStore 列来存储动态产品属性。我已经构建了一个可以使用 Arel 构造查询的表单,但我坚持以下要求:
1. 查询必须序列化到数据库。我可以存储 .to_sql 字符串,但随后卡住了......
2. 我必须能够重建用户表单以供以后编辑,因为这些不是一次性搜索,而是共享查询。

如何以可以轻松重构用户定义查询的方式进行序列化?

4

2 回答 2

0

难道你不能序列化 rails 从表单中获取的参数吗?

您将拥有来自用户输入表单的键和值的散列,并且可以轻松地将其反馈到您用于从所述表单查询数据库或进一步处理它的任何逻辑中。

于 2013-04-03T03:26:12.263 回答
0
  1. 您可以使用持久模型来保存用户关于搜索的选项。
  2. 当您需要运行查询时,您将获得用户保存的选项并将它们传递给使用ransacker. 您可以像这样访问值hstore
Arel::Node::InfixOperator.new('->>', 'hstore_column_name', Arel::Nodes::Quoted.new('key_in_hstore'))
于 2016-01-23T22:30:52.407 回答