代码之家  ›  专栏  ›  技术社区  ›  Garfield

ActiveRecord中的帮助查找条件包括

  •  1
  • Garfield  · 技术社区  · 14 年前

    我有一个 Coach 模型:

    has_many :qualifications
    

    我想找到所有教练 attribute_id nil 他们有一些 qualifications . 像这样的东西。

    def requirement
        legal_coaches = []
        coaches = find_all_by_attribute_id(nil)
        coaches.each do |coach|
            legal_coaches << coach if coach.qualifications.any?
        end
        legal_coaches
    end
    

    有没有办法把所有这些记录放在一行中?

    2 回复  |  直到 13 年前
        1
  •  1
  •   bragboy    13 年前
    find_all_by_attribute_id(nil).select(&:qualification) 
    
        2
  •  0
  •   alex.zherdev    14 年前

    我认为你不能通过纯粹的Ruby语法来做到这一点。我只能想到以下(丑陋的)方式

    Coach.find(:all, :conditions => "attribute_id IS NULL AND EXISTS(SELECT * FROM qualifications WHERE coach_id = coaches.id)")