例えば、mergeを使うと以下のように複数の条件を組み合わせることができます。

    def self.search_foods(params)
      name = params[:name]
      taste_ids = params[:taste_ids].try(:reject, &:blank?)
      includes(:tastes).order("foods.name").merge(
        name.blank? ? all : where("foods.name like :name", name: "%#{name}%")
      ).merge(
        taste_ids.blank? ? all : where(tastes: { id: taste_ids })
      )
    end

Rails 4ではallは配列ではなくrelationを返すので、条件を追加しない場合はallを使用できます。
Rails 3では引数なしのscopedを代りに使用します。