1

我有三个模型。它们如下所示

class User < ApplicationRecord
  has_one :shop
  has_one :address
end

class Shop < ApplicationRecord
  belongs_to :user      
end

class Address < ApplicationRecord
  belongs_to :user      
end

地址模型有 state_id 列。address.state_id现在我想获取店主为 123456的所有商店。

4

2 回答 2

2
Shop.joins(user: :address).where(addresses: { state_id: 123456 })
于 2016-11-04T10:09:56.220 回答
1

您可以描述ShopAddressvia的关系User。像这样:

# models/shop.rb
class Shop < ApplicationRecord
  belongs_to :user
  has_one :address, through: :user
end

然后你可以发出一个简单的调用:

Shop.includes(:address).where(addresses: { state_id: 123456 })
于 2016-11-04T10:17:29.340 回答