次のスキーマがあります。
class Locale < ActiveRecord::Base
has_many :shops
# region : String
end
class Shop < ActiveRecord::Base
belongs_to :locale
has_many :carts
scope :europe, joins(:locale).where('locales.region = ?', 'Europe')
end
class Cart < ActiveRecord::Base
belongs_to :shop
scope :purchased, where('purchased_at is not null')
# purchased_at : DateTime
end
特定の地域で購入されたすべてのカートを見つけたいのですが、クエリをもう少し読みやすくするためにいくつかのスコープを設定していますが、試してみると:
Cart.purchased.join(:shop).merge(Shop.europe)
エラーが表示されます: ActiveRecord::ConfigurationError: 'locale' という名前の関連付けが見つかりませんでした。おそらくあなたはそれを書き間違えましたか?
これを機能させる方法について何か考えはありますか?