【发布时间】:2018-09-09 13:54:44
【问题描述】:
我有以下型号:
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
因此,一个企业可以进行多次购物,而每次购物都可以进行多次购买。
我正在尝试对 Purchase 表运行一个简单的查询,以查找属于特定企业的购买。所以我写这个:
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 子句似乎失败了。
【问题讨论】:
标签: ruby-on-rails rails-activerecord