Ruby on rails 3 ActiveRecord where子句错误

Ruby on rails 3 ActiveRecord where子句错误,ruby-on-rails-3,Ruby On Rails 3,我是rails的新手。我有一个叫OfflineExport的模型。表中有这样的数据 #<OfflineExport id: 2, parameters: {"project_id"=>"3", "type"=>"submissions", "filters"=>{"task_type"=>"", "corrections"=>"", "grade"=>"", "min_d

我是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}}>
但我得到的错误是:

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

有人能帮我解决这个问题吗?

您的模型中似乎有一个序列化列。类似这样的内容:
序列化:参数
。这意味着数据存储在数据库中的格式不易读取,这导致您无法对其进行查询


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

那么您的意思是我现在必须像这样使用“MyModel.all.select{m | m.mycode.include?43402}?不太可能。类似的解决方案也可以工作(这显然不是为您的模式编写的),但这会大大降低程序的速度。您应该为该数据创建一个新列,并对其进行查询。这里的情况是,我无法将字段单独提取到另一列中。是否有其他方法?您可以尝试向其写入类似于的条件,但这是非常危险的,您需要研究存储的字符串。或者您可以在链接上使用该技术,加载所有元素,然后在代码端进行选择。这是一种缓慢的工作方法。
ActiveRecord::StatementInvalid: PGError: ERROR:  cannot subscript type text because it is not an array