ActiveRecord where子句错误

时间:2012-11-10 15:52:47

标签: ruby-on-rails-3

我是rails的新手。我有一个名为OfflineExport的模型。在表格中我有这样的数据

#<OfflineExport id: 2, 
  parameters: 
      {"project_id"=>"3", 
       "type"=>"submissions", 
       "filters"=>{"task_type"=>"", 
       "corrections"=>"", "grade"=>"", 
       "min_duration"=>"", "after"=>"", 
       "max_duration"=>"", "reviews"=>"", 
       "before"=>""}, 
  "send_email"=>"true", 
  "options"=>{"offline_record_id"=>2}}>

我试图在where子句中获取参数[&#34; project_id&#34;],如

 OfflineExport.where("parameters[project_id] = '3'")

但我得到的错误如下:

ActiveRecord::StatementInvalid: PGError: ERROR:  cannot subscript type text because it is not an array

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的模型中似乎有一个序列化列。这样的事情:serialize :parameters。这意味着数据不是以易于阅读的格式存储在数据库中,这导致您无法对其进行查询。 Same as here

解决方案:提取您要查询的字段,并为其创建一列。