【问题标题】:How to query on multiple tables in rails?如何查询rails中的多个表?
【发布时间】:2017-03-18 03:01:47
【问题描述】:

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

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的所有店铺。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 activerecord ruby-on-rails-5 ruby-on-rails-6


    【解决方案1】:
    Shop.joins(user: :address).where(addresses: { state_id: 123456 })
    

    【讨论】:

      【解决方案2】:

      您可以通过User 描述ShopAddress 的关系。像这样:

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

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

      Shop.includes(:address).where(addresses: { state_id: 123456 })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-13
        • 1970-01-01
        相关资源
        最近更新 更多