如何查询rails中的多个表?
问题描述:
我有三种模式。它们如下所示如何查询rails中的多个表?
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
答
Shop.joins(user: :address).where(addresses: { state_id: 123456 })
答
您可以通过User
描述Shop
和Address
关系。就像这样:
# models/shop.rb
class Shop < ApplicationRecord
belongs_to :user
has_one :address, through: :user
end
然后你就可以发出简单的呼叫:
Shop.includes(:address).where(addresses: { state_id: 123456 })