sql >> Databáze >  >> NoSQL >> MongoDB

Jaké jsou dobré způsoby, jak získat aktuální uživatelské detaily v modelech?

Řízení přístupu v kolejích se provádí na úrovni ovladače, nikoli na úrovni modelu. V důsledku toho rails neposkytuje žádný mechanismus pro přístup k aktuálnímu uživateli, souborům cookie atd. z kódu modelu. Pokud chcete, můžete data do modelu přenést pomocí parametrů do metod. To by však bylo ignorování návrhových rozhodnutí některých nejlepších programátorů v oboru, takže si myslím, že to pravděpodobně není dobrá volba.

Jinými slovy, nedělejte to, o co se snažíte. Do svého modelu vložte znalosti o tom, jak věci dělat, ale do ovladače umístěte kontrolu nad tím, kdo je může dělat.

Na druhou stranu, pokud se z nějakého důvodu pokoušíte uložit aktuálního uživatele, měli byste to udělat pomocí nějaké asociace (nebo vnořeného dokumentu, protože používáte mongo). V takovém případě nepoužívejte current_user uvnitř modelu, ale raději vytvořte attr_accessor on user, nastavte uživatele na instanci vašeho modelu na current_user v ovladači a poté jej uložte, jak potřebujete, do zpětného volání.



  1. Rozdíl mezi kurzor.count() a kurzor.size() v MongoDB

  2. Podmíněně vyhodnoťte prvek pole, který se má vrátit

  3. Chcete-li vrátit dokumenty vytvořené dnes, zadejte dotaz na mongodb

  4. Vyberte dokumenty, kde všechny hodnoty v poli pole existují v jiném poli