使用include查询,但仅限于某些条件

时间:2013-11-10 15:00:34

标签: ruby-on-rails

是否可以使用include语句在rails中进行模型查询,但只有在出现其他条件时才能使用“include”?

我有这段代码:

@families = Family.find(:all,
:conditions => family_conditions, 
:select => 'families.id,families.name', 
:include => families_include_array)

因此,只有在families_include_array不为null时才包含include。

1 个答案:

答案 0 :(得分:1)

您应该在if语句中添加查询

if families_include_array.is_nil?
  @families = Family.find(:all,:conditions => family_conditions, :select => 'families.id,families.name')
else
    @families = Family.find(:all,:conditions => family_conditions, :select => 'families.id,families.name', :include => families_include_array)
end

或者您可以将SQL请求创建为字符串,并使用ActiveRecord::Base.connection.execute

将其发送到SQL

<强>更新

或者您可以尝试覆盖查找方法

def self.find(*args)
  records = super  
  # Manipulate records
end