0

includeステートメントを使用してレールでモデルクエリを作成することは可能ですが、別の条件が発生した場合にのみ「含める」ことはできますか?

私はこのコードを持っています:

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

したがって、インクルードは、familys_include_array が null でない場合にのみ存在する必要があります。

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 リクエストを文字列として作成し、それを SQL に送信することもできますActiveRecord::Base.connection.execute

アップデート

または、find メソッドをオーバーライドすることもできます

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