我在我的rails網站中實現用戶設置,用戶可以控制哪些人可以向他發送通知。可以向其發送信息的用戶所允許的類別存儲在數組中,並且可以由用戶設置。Mongoid查詢包含數組
如何根據發送帖子的用戶的用戶類型查詢用戶發送通知。
我想做這樣的事情。
notifiable_users = User.all.or("notification_setting.posted_by" includes "sender.user_type")
我在我的rails網站中實現用戶設置,用戶可以控制哪些人可以向他發送通知。可以向其發送信息的用戶所允許的類別存儲在數組中,並且可以由用戶設置。Mongoid查詢包含數組
如何根據發送帖子的用戶的用戶類型查詢用戶發送通知。
我想做這樣的事情。
notifiable_users = User.all.or("notification_setting.posted_by" includes "sender.user_type")
假設notification_setting.posted_by
爲允許的用戶類型的陣列和sender.user_type
被髮送方的USER_TYPE(單數,而不是一個陣列),就可以簡單地做:
notifiable_users = User.all.or("notification_setting.posted_by" => sender.user_type)
如果是其他的方式around:
notifiable_users = User.all.or("notification_setting.posted_by".to_sym.in => sender.user_types)
感謝您寫的第一個查詢爲我做了訣竅! – nightf0x 2012-04-17 18:45:34
+1以上評論 – apneadiving 2012-04-17 19:27:26
'all.or'應該是什麼意思? – apneadiving 2012-04-17 18:42:36
我只是將過濾器添加到使用mongoid或鏈接的所有用戶。 – nightf0x 2012-04-17 18:46:26
但是這樣做,我想你先加載所有用戶,然後過濾內存中的對象,爲什麼不直接做一個更精確的查詢來降低數據庫調用? – apneadiving 2012-04-17 18:50:10