如何查询rails中的多个表?
How to query on multiple tables in 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 })
我有三个模型。它们如下
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 })