Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查嵌套数组中是否包含值_Ruby On Rails_Json_Rails Activerecord_Postgresql 9.1 - Fatal编程技术网

Ruby on rails 如何检查嵌套数组中是否包含值

Ruby on rails 如何检查嵌套数组中是否包含值,ruby-on-rails,json,rails-activerecord,postgresql-9.1,Ruby On Rails,Json,Rails Activerecord,Postgresql 9.1,在postgresjson字段中,如何使用ActiveRecord查询匹配item[“editions”]包含23的所有数组项 Topic.create!( tree: [ {

在postgres
json
字段中,如何使用ActiveRecord查询匹配
item[“editions”]
包含
23
的所有数组项

Topic.create!(                                
  tree: [                                                                         
    {                                                                             
      "title"       => "Title 1",                                                    
      "description" => "Description",                                              
      "editions"    => [23],                                  
    }
   {                                                                             
      "title"       => "Title 2",                                                    
      "description" => "Description",                                              
      "editions"    => [12],                                  
    }                                                                                   
  ]
)          

你有一些额外的逗号和一些丢失的逗号:i;我将对阵列进行如下整理:

myarray =  [                                                                         
  {                                                                             
    "title"       => "Title 1",                                                    
    "description" => "Description",                                              
    "editions"    => [23]                     
  },
 {                                                                             
    "title"       => "Title 2",                                                    
    "description" => "Description",                                              
    "editions"    => [12]                                
  }                                                                                   
]
=> [{"title"=>"Title 1", "description"=>"Description", "editions"=>[23]}, {"title"=>"Title 2", "description"=>"Description", "editions"=>[12]}]

matching = myarray.select{|hash| hash["editions"].include?(23)}
=> [{"title"=>"Title 1", "description"=>"Description", "editions"=>[23]}]

这就是使用现有数据结构的方法,该数据结构是数组和散列的混合体。如果您想知道如何通过sql查询执行此操作,您需要解释如何在数据库中实际存储此数据,并提供一些示例。

您有一些额外的逗号和一些缺少的逗号:i;我将对阵列进行如下整理:

myarray =  [                                                                         
  {                                                                             
    "title"       => "Title 1",                                                    
    "description" => "Description",                                              
    "editions"    => [23]                     
  },
 {                                                                             
    "title"       => "Title 2",                                                    
    "description" => "Description",                                              
    "editions"    => [12]                                
  }                                                                                   
]
=> [{"title"=>"Title 1", "description"=>"Description", "editions"=>[23]}, {"title"=>"Title 2", "description"=>"Description", "editions"=>[12]}]

matching = myarray.select{|hash| hash["editions"].include?(23)}
=> [{"title"=>"Title 1", "description"=>"Description", "editions"=>[23]}]
这就是使用现有数据结构的方法,该数据结构是数组和散列的混合体。如果您想知道如何通过sql查询执行此操作,则需要解释如何在数据库中实际存储此数据,并提供一些示例