0

dbテーブルに裏打ちされたメールモデルがあります。Recipientsは、連絡先ID番号と生の電子メールを保持するシリアル化された配列です。連絡先に送信されたすべての電子メールを取得するためにクエリを実行できるようにしたいと思います。find_by_recipients(contact.idを含む)を行うにはどうすればよいですか?

4

2 に答える 2

0

シリアル化されたデータの内部を実際に照会することはできません。データを保存する別の方法を理解するか、すべてのレコードをフェッチして、Rubyを使用して何らかの方法でそれらを反復処理する必要があります(これをどのように行うかは、スタイルに応じて異なります)。警告:レコードが多い場合、後者は非常に遅くなります。

于 2012-07-25T19:26:49.150 に答える
0

3つのオプションがあります

  1. データを再構築し、シリアル化されたデータを新しいテーブル/列に抽出します
  2. いくつかの検索エンジン(おそらくsunspot_solr gemを使用したSOLR)を使用してデータにインデックスを付けます
  3. 代わりにnosqlソリューションを使用してください。MongoDBとmongo_mapper/mongoidが望ましい
于 2012-07-26T11:13:15.003 に答える