【问题标题】:Ruby on Rails: Select from database where column equals a value from arrayRuby on Rails:从数据库中选择列等于数组中的值
【发布时间】:2013-07-16 14:38:25
【问题描述】:

如果我的数据库中有一个表 (table1) 的 ID 数组。有没有办法查询另一个表 (table2) 以选择列等于 table1 中一个 ID 的值的所有记录。

到目前为止我的代码是:

LabQuestion.where("product_id=#{Product.where(:brand_id => brand_id).pluck(:id)}")

在此代码中,我试图检索与某个品牌的所有产品相关联的所有实验室问题。此代码不起作用,但我已尝试证明我的需求。

【问题讨论】:

    标签: ruby-on-rails-3 activerecord


    【解决方案1】:

    假设您已正确设置关系,您可以使用joins 连接两个表并像这样查询它们:

    LabQuestion.joins(:product).where(:products => { :brand_id => brand_id })
    

    【讨论】:

      【解决方案2】:

      您可以使用包含而不是连接,如下所示

      LabQuestion.includes(:product).where(:products => { :brand_id => brand_id })
      

      【讨论】:

      • 可以使用includes,但不建议在这种情况下使用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多