ruby-on-rails-3 – ActiveRecord查询has_many:通过模型

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – ActiveRecord查询has_many:通过模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在“has_many:through”关系中查询具有特定分支的公司?
#company.rb
  has_many :branch_choices
  has_many :branches,:through => :branch_choices

“查找所有分行ID为3的公司”

解决方法

Company.includes(:branches).where(:branches => {:id => 3})

要么

Branch.find(3).companies

UPDATE
实际上,第一个片段有一个不利因素:它急切地将分支机构与公司一起加载.为避免这种开销,您可以考虑使用左连接:

Company.
  joins("LEFT JOIN `branch_choices` ON `branch_choices`.`company_id` = `companies`.`id`").
  where(:branch_choices => {:branch_id => 3})

猜你在找的Ruby相关文章