KONTEKST:Niestandardowy zakres na has_many,: poprzez stowarzyszenia (Szyny 4)
W moich użytkowników konfiguracji wielu społecznościach poprzez CommunityUser i Wspólnoty mają wiele postów poprzez CommunityPost. Jeśli następnie następuje, że użytkownicy mają wiele postów poprzez społeczności.
User.rb
has_many :community_users
has_many :communities, through: :community_users
has_many :posts, through: :communities
Biorąc powyższe pod uwagę User.rb Calling "current_user.posts" zwraca posty z jednego lub większej liczby społeczności wspólnych z current_user.
PYTANIE:
szukam udoskonalić że stowarzyszenie tak, nazywając „current_user.posts” zwraca tylko te posty, których społeczności są kompletne podzbiór społeczności na current_user użytkownika.
Tak więc, biorąc pod uwagę current_user z community_ids z [1,2,3], wywołanie "current_user.posts" przyniosłoby tylko te posty, których tablica "community_ids" to 1, [2], [3], [1 , 2], [1,3], [2,3] lub [1,2,3].
Byłem badania zasięgów here, ale nie wydaje się, aby wskazać, jak osiągnąć ten cel z powodzeniem ...
Witam, przepraszam za opóźnienie! Przyjąłem, że to pytanie zajęłoby trochę czasu, aby uzyskać odpowiedź, ponieważ wymaga pewnej uwagi, o czym wspomniałeś. Tak, używam Railsów i używam metod ActiveRecord dla community_ids. – neon
Jak już wspomniano, użytkownik jest dostępny przy użyciu powiązania warunkowego: "has_many: posts, -> (user) {where (" id IN (?) ", User.community_ids)}, poprzez:: communities", ale w tym przypadku nie Muszę też jakoś sprawdzić społeczności każdego z posterunków? Po prostu głośno myślę. – neon
Sidenote: robi "gdzie (" id IN (?) ", User.community_ids)" w ten sposób zwróci posty powiązane z DOWOLNYM JEDNYM "user.community_ids", zamiast zwracać posty związane ze społecznościami, które są kompletnym podzbiorem " user.community_ids " – neon