0

是否可以使用包含语句在 Rails 中进行模型查询,但仅在发生另一个条件时才使用“包含”?

我有这个代码:

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

因此,仅当family_include_array 不为空时,包含才应该存在。

4

1 回答 1

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 请求创建为字符串并将其发送到 SQLActiveRecord::Base.connection.execute

更新

或者你可以尝试覆盖 find 方法

def self.find(*args)
  records = super  
  # Manipulate records
end
于 2013-11-10T15:28:38.783 回答