You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 25, 2021. It is now read-only.
Repository navigation
How To: Embed users in your account model with Mongoid
trevorturk edited this page Sep 20, 2010
·
1 revision
If you have multiple accounts in your system, each with many users, and you’re using a document-based database like MongoDB, it makes perfect sense to embed your users within your account model, so that they’re not all just sitting at the top level. This can be quite tricky to do with Devise, since Warden will call User#find to retrieve the stored user model.
This gist shows what you need to do to your User model to get this to work. The main change is to User#find, which translates its parameters into a call to Account#find instead, then returns the relevant user.
Note that you can’t just use Account.find :first, :user => options[:conditions], because, according to the MongoDB docs, you need to match all fields on a subobject, whereas dot notation will let you away with partial matches.