У меня есть следующие модели:
class Business < ApplicationRecord
has_many :shopping_trips
end
class ShoppingTrip < ApplicationRecord
belongs_to :business
has_many :purchases
end
class Purchase < ApplicationRecord
belongs_to :shopping_trip
end
Таким образом, у Бизнеса может быть много покупок, и у каждой из этих покупок может быть много покупок.
Я пытаюсь запуститьпростой запрос в таблице покупок, чтобы найти покупки, которые принадлежат конкретному бизнесу.Поэтому я пишу это:
purchases = Purchase.joins(:shopping_trip => :business ).where(:shopping_trip => {:business_id => 1})
К сожалению, это не работает.Я получаю следующую ошибку:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "shopping_trip"
LINE 1: ...sses"."id" = "shopping_trips"."business_id" WHERE "shopping_...
^
: SELECT "purchases".* FROM "purchases" INNER JOIN "shopping_trips" ON "shopping_trips"."id" = "purchases"."shopping_trip_id" INNER JOIN "businesses" ON "businesses"."id" = "shopping_trips"."business_id" WHERE "shopping_trip"."business_id" = $1
Объединение выглядит примерно так, но, похоже, условие where не выполняется.