To jest moja konfiguracja:
- użytkownicy mają wiele zakupów
- paczki mają wiele zakupów
- paczki mają wiele przepisów
Chcę wybrać wszystkie przepisy, które użytkownik kupił z zakresu w Recipe
klasa. Oto, co mam teraz:
scope :purchased, lambda { |user| includes(pack: :purchases).where(packs: { purchases: { user: user } }) }
Z jakiegoś powodu, kiedy dzwonię Recipe.purchased(current_user)
Dostaję wszystko Recipe
dokumentacja.
Co robię źle w zakresie?
Odpowiedzi:
4 dla odpowiedzi № 1Można to łatwo zrobić w Railsach. Po prostu korzystasz ma wiele z :through
opcja taka jak ta:
class User < ApplicationRecord
has_many :purchases
has_many :packs, through: :purchases
has_many :recipes, through: :packs
end
user = User.first
user.recipes # returns all user"s recipes