是否可以使用包含语句在 Rails 中进行模型查询,但仅在发生另一个条件时才使用“包含”?
我有这个代码:
@families = Family.find(:all,
:conditions => family_conditions,
:select => 'families.id,families.name',
:include => families_include_array)
因此,仅当family_include_array 不为空时,包含才应该存在。
是否可以使用包含语句在 Rails 中进行模型查询,但仅在发生另一个条件时才使用“包含”?
我有这个代码:
@families = Family.find(:all,
:conditions => family_conditions,
:select => 'families.id,families.name',
:include => families_include_array)
因此,仅当family_include_array 不为空时,包含才应该存在。
您应该在 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