serialize
で検索するのが悪いことが分かっていますが、この問題が発生します。railsで検索してシリアル化する
私は、質問と呼ばれるモデルを持って、シリアル化列assignments
id question_set_id assignments
1 1 {"12982": true, "12332": true}
2 2 {"12222": true, "12332": true}
3 3 {'11111': true}
が含まれていると私は、アレイはgroup_ids
group_ids = ["12982","12332"]
呼ばれました私は、少なくとも一つのgroup_id
が含まれているレコードを検索する必要がありますassignments
。
したがって、この例の結果は、私が
Question.where("assignments IS NOT NULL").where("assignments LIKE '%?%'", 12982)
それは作品を思わ
を試してみたが、どのように配列を適用する[
{
:id => 1,
:question_set_id => 1,
:assignments => {"12982": true, "12332": true}
},
{
:id => 2,
:question_set_id => 2,
:assignments => {"12222": true, "12332": true}
}
]
ようにすべきですか?
そしてこのanswerよると、私はしかし、それは空白の配列を返す
Question.where("assignments IS NOT NULL").where("assignments= ?", groups_ids.to_yaml)
を試してみました。
どのデータベースを使用していますか(postrgesql/mysql)?どのシリアライザを使用しますか(JSON、ハッシュ、カスタム)ですか?シリアル化する列(Text、JSON、hstore)のどちらのタイプですか? – slowjack2k
mysql、JSON、Text –