2012-04-17 8 views
0

私は自分の通知を送ることができるユーザーを制御できる私のレールのWebサイトにユーザー設定を実装しています。彼に情報を送ることができるユーザーの許可された分類は、配列に格納され、ユーザーが設定することができます。Mongoidクエリーインクルード配列

投稿を送信したユーザーのユーザーの種類に応じて通知を送信するようにユーザーに問い合わせる方法を教えてください。

私はこのようなことをしたい。

notifiable_users = User.all.or("notification_setting.posted_by" includes "sender.user_type") 
+0

「all.or」とはどういう意味ですか? – apneadiving

+0

私は、モンゴイドの連鎖を使ってすべてのユーザーにフィルターを追加しています。 – nightf0x

+0

しかし、これを行うと、私はあなたがメモリ内のオブジェクトをフィルタリングするすべてのユーザーを最初にロードすると思います、なぜあなたは直接dbコールを下げるために、より正確なクエリを作成しないでください? – apneadiving

答えて

2

許可されたユーザタイプの配列とsender.user_typeが送信者のUSER_TYPE(単数ではなく、配列を)notification_setting.posted_byをされていると仮定すると、あなたは簡単に行うことができます。

notifiable_users = User.all.or("notification_setting.posted_by" => sender.user_type) 

、それは他の方法であれば周囲:

notifiable_users = User.all.or("notification_setting.posted_by".to_sym.in => sender.user_types) 
+0

あなたが書いた最初のクエリは私のトリックでした! – nightf0x

+0

+1上記のコメント – apneadiving