0

私は 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句のようなパラメータ["project_id"]をフェッチしようとしています

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

しかし、次のようなエラーが発生しています:

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

誰でもこれを解決するのを手伝ってもらえますか?

4

1 に答える 1

0

モデルにシリアル化された列があるようです。このようなもの: serialize :parameters. これは、データが読みやすい形式でデータベースに保存されていないことを意味し、クエリを実行することができません。ここと同じ

解決策: クエリを実行するフィールドを抽出し、その列を作成します。

于 2012-11-10T16:09:49.803 に答える